perm filename APP2.XGP[AIM,DBL]1 blob sn#124702 filedate 1974-10-17 generic text, type T, neo UTF8
/LMAR=0/FONT#0=FIX25/FONT#1=SIGN57/FONT#2=SHD40/FONT#3=BDI25/FONT#4=NGB30/FONT#5=NGR20
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓↓APPENDIX 2. ␈↓ ␈↓αTHE BEINGS␈↓

␈↓ α,␈↓Here␈α∃we␈α∃present␈α∃summaries␈α∃of␈α∀the␈α∃knowledge␈α∃embedded␈α∃in␈α∃each␈α∀BEING.
␈↓ α,␈↓Only␈α~the␈α→most␈α~important␈α~parts␈α→of␈α~each␈α→BEING␈α~are␈α~even␈α→mentioned.
␈↓ α,␈↓First␈α⊂we␈α⊂present␈α⊂those␈α⊂BEINGS␈α⊂used␈α⊂to␈α⊂write␈α⊂CF.␈α⊂Next␈α⊂come␈α⊂the␈α⊂ones␈α⊂we
␈↓ α,␈↓had␈α∪to␈α∪add␈α∪to␈α∀the␈α∪pool␈α∪to␈α∪get␈α∪PUP6␈α∀to␈α∪write␈α∪GI␈α∪and␈α∪INF.␈α∀ Among␈α∪the
␈↓ α,␈↓first␈α↔group,␈α↔we␈α↔further␈α↔subdivide␈α↔it␈α↔into␈α↔(a)␈α_high-level,␈α↔domain-
␈↓ α,␈↓specific,␈α≥(b)␈α≡low-level␈α≥domain-specific,␈α≥(c)␈α≡ubiquitous,␈α≥domain-
␈↓ α,␈↓independent,␈α#(d)␈α#high-level,␈α#domain-independent,␈α$(e)␈α#low-level,
␈↓ α,␈↓domain-independent,␈α∀(f)␈α∀non-BEING␈α∀knowledge␈α∀in␈α∀variables,␈α∀and␈α∀(g)␈α∀a
␈↓ α,␈↓few␈α⊂interesting␈α⊂demons␈α⊂and␈α⊂functions.␈α⊂ The␈α⊂additions␈α⊂following␈α⊂CF␈α⊂are
␈↓ α,␈↓so small we don't subdivide their descriptions.

␈↓ α,␈↓∧(i) The knowledge necessary to write a concept formation program:

␈↓ α,␈↓∧A. High-level, domain-specific knowledge

␈↓ α,␈↓␈↓βCONCEPT-FORMATION␈↓.␈α↔The␈α↔user␈α↔must␈α↔be␈α↔aware␈α↔that␈α↔we␈α↔are␈α↔about␈α⊗to
␈↓ α,␈↓undertake␈α⊂concept␈α⊂formation.␈α⊂Inference␈α⊂and␈α⊂attention-focussing␈α⊂demons
␈↓ α,␈↓must␈α∪be␈α∪turned␈α∩on.␈α∪After␈α∪completion␈α∩of␈α∪this␈α∪task,␈α∩PUP6␈α∪will␈α∪be␈α∩able
␈↓ α,␈↓to␈α⊂learn␈α⊂concepts.␈α⊂This␈α⊂is␈α⊂a␈α⊂specialized␈α⊂form␈α⊂of␈α⊂attending,␈α⊂learning,
␈↓ α,␈↓and␈α∃doing␈α⊗inductive␈α∃inference.␈α∃It␈α⊗is␈α∃an␈α∃alternative␈α⊗to␈α∃grammatical
␈↓ α,␈↓inference,␈α%pattern␈α&recognition,␈α%and␈α%simulated␈α&evolution.␈α% Its
␈↓ α,␈↓structure␈α≡must␈α≡be␈α≡one␈α≡of␈α≡the␈α≡following:␈α≡classificatory␈α≡concept
␈↓ α,␈↓formation,␈α%comparative␈α&concept␈α%formation,␈α%or␈α&metrical␈α%concept
␈↓ α,␈↓formation.␈α⊗We␈α⊗must␈α⊗make␈α⊗the␈α∃boolean␈α⊗decision␈α⊗as␈α⊗to␈α⊗whether␈α⊗or␈α∃not
␈↓ α,␈↓concepts␈α≡may␈α≡vary␈α≡with␈α∨time.␈α≡ Similarly,␈α≡whether␈α≡the␈α∨speed␈α≡of
␈↓ α,␈↓presentation␈α≡of␈α∨the␈α≡stimuli␈α∨is␈α≡relevant;␈α≡if␈α∨so,␈α≡then␈α∨we␈α≡must
␈↓ α,␈↓constrain␈α≤the␈α≤effort␈α≤spent␈α≤on␈α≤various␈α≤phases␈α≤of␈α≤identification.
␈↓ α,␈↓Instances␈α∪may␈α∪be␈α∪left␈α∪in␈α∪view␈α∪indefinitely,␈α∪or␈α∪may␈α∪be␈α∪removed␈α∩right
␈↓ α,␈↓after␈α⊗processing;␈α⊗this␈α⊗latter␈α⊗case␈α∃holds␈α⊗for␈α⊗CF;␈α⊗it␈α⊗means␈α⊗we␈α∃must
␈↓ α,␈↓derive␈α→all␈α→relations␈α_(features)␈α→as␈α→soon␈α→as␈α_we␈α→see␈α→a␈α→scene.␈α_ The
␈↓ α,␈↓program␈α∃will␈α∃have␈α∃to␈α∃be␈α∀just␈α∃complex␈α∃enough␈α∃to␈α∃handle␈α∀conjunctive,
␈↓ α,␈↓disjunctive,␈α∪or␈α∪both␈α∪kinds␈α∀of␈α∪concepts;␈α∪this␈α∪is␈α∪another␈α∀decision␈α∪to
␈↓ α,␈↓make.␈α∃ Similarly␈α⊗for␈α∃positive,␈α∃negative,␈α⊗both,␈α∃or␈α∃neither␈α⊗kinds␈α∃of
␈↓ α,␈↓transfer␈α (psychological),␈α which␈α affects␈α the␈α recognition␈α that␈α a
␈↓ α,␈↓concept␈α⊂is␈α⊂new,␈α⊂and␈α⊂how␈α⊂previously␈α⊂learned␈α⊂concepts␈α⊂interact␈α⊂with␈α⊂the
␈↓ α,␈↓learning␈α≠of␈α≠new␈α≠ones.␈α≤ We␈α≠must␈α≠decide␈α≠whether␈α≠to␈α≤use␈α≠positive,
␈↓ α,␈↓negative,␈α∀or␈α∪both␈α∀kinds␈α∪of␈α∀instances␈α∪of␈α∀a␈α∀concept.␈α∪Subject-specific
␈↓ α,␈↓behavior␈α∀may␈α∀be␈α∀required;␈α∀that␈α∀is,␈α∀the␈α∀program␈α∀may␈α∀have␈α∀to␈α∀input␈α∀a
␈↓ α,␈↓vector␈α⊗describing␈α⊗a␈α⊗particular␈α⊗individual,␈α⊗and␈α⊗its␈α⊗whole␈α⊗structure
␈↓ α,␈↓must␈α⊗mimic␈α⊗this␈α⊗subject.␈α⊗The␈α∃last␈α⊗decision␈α⊗is␈α⊗one␈α⊗of␈α⊗adapting␈α∃the
␈↓ α,␈↓program␈α∪to␈α∪an␈α∪extended␈α∀sample␈α∪dialogue␈α∪which␈α∪the␈α∪user␈α∀must␈α∪furnish;
␈↓ α,␈↓this␈α∃will␈α⊗help␈α∃both␈α∃to␈α⊗check␈α∃out␈α∃the␈α⊗program␈α∃writtten,␈α∃and␈α⊗to␈α∃fix
␈↓ α,␈↓various␈α⊗print␈α⊗statements␈α⊗and␈α⊗I/O␈α∃formats.␈α⊗It␈α⊗is␈α⊗easy␈α⊗to␈α⊗call␈α∃this
␈↓ α,␈↓BEING␈α∩(.1),␈α∪it␈α∩has␈α∪a␈α∩50-50␈α∪chance␈α∩of␈α∪calling*␈α∩itself,␈α∪it␈α∩has␈α∪only␈α∩a
␈↓ α,␈↓0.5␈α⊃chance␈α∩of␈α⊃succeeding,␈α⊃but␈α∩the␈α⊃effort␈α⊃to␈α∩try␈α⊃it␈α⊃is␈α∩moderate␈α⊃(.5).


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α+page A2.1␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓There␈α∀is␈α∪no␈α∀fundamental␈α∪reason␈α∀for␈α∪delaying␈α∀its␈α∀investigation␈α∪(.1).
␈↓ α,␈↓It␈α_recognizes␈α_itself␈α_only␈α_through␈α_exact␈α_matching␈α_of␈α_one␈α_of␈α_seven
␈↓ α,␈↓patterns.␈α⊂It␈α⊂has␈α⊂sentences␈α⊂describing␈α⊂what␈α⊂it␈α⊂does,␈α⊂how,␈α⊂and␈α⊂why.␈α⊂ It
␈↓ α,␈↓is␈α∪unlikely␈α∪(-70)␈α∩to␈α∪be␈α∪called␈α∩if␈α∪some␈α∪type␈α∩of␈α∪concept␈α∪formation␈α∩is
␈↓ α,␈↓already␈α∪doable␈α∪by␈α∪PUP6;␈α∀if␈α∪PUP6␈α∪wants␈α∪to␈α∪characterize␈α∀classes,␈α∪then
␈↓ α,␈↓it's␈α∪very␈α∪likely␈α∪(88)␈α∪to␈α∪be␈α∪called.␈α∪The␈α∪presence␈α∪of␈α∪new␈α∩information
␈↓ α,␈↓delays␈α⊗(-60)␈α⊗our␈α⊗calling␈α⊗the␈α∃BEING,␈α⊗since␈α⊗it␈α⊗might␈α⊗affect␈α⊗what␈α∃we
␈↓ α,␈↓should␈α∃do.␈α⊗ Conversely,␈α∃the␈α∃absence␈α⊗of␈α∃new␈α∃information␈α⊗mildly␈α∃(40)
␈↓ α,␈↓encourages␈α∀us␈α∀to␈α∪go␈α∀on␈α∀and␈α∪try␈α∀it.␈α∀When␈α∪finished,␈α∀the␈α∀user␈α∀must␈α∪be
␈↓ α,␈↓aware␈α that␈α PUP6␈α has␈α decided␈α on␈α a␈α particular␈α type␈α of␈α concept
␈↓ α,␈↓formation,␈α⊃and␈α∩that␈α⊃it␈α∩has␈α⊃done␈α∩it.␈α⊃The␈α∩other␈α⊃BEINGs␈α∩affected␈α⊃depend
␈↓ α,␈↓on the decisions mentioned earlier.

␈↓ α,␈↓This␈α∀is␈α∃an␈α∀over-abundance␈α∀of␈α∃information.␈α∀From␈α∀now␈α∃on,␈α∀I␈α∃will␈α∀only
␈↓ α,␈↓give␈α⊂the␈α⊂little␈α⊂pieces␈α⊂of␈α⊂information␈α⊂which␈α⊂are␈α⊂crucial␈α⊂to␈α⊂the␈α⊂BEING;
␈↓ α,␈↓its essence.

␈↓ α,␈↓␈↓βCLASSIFICATORY␈α⊂CONCEPT␈α⊂FORMATION␈↓.␈α∂To␈α⊂do␈α⊂this,␈α∂we␈α⊂must␈α⊂partition␈α∂a
␈↓ α,␈↓domain, in an interactive "guessing" manner.

␈↓ α,␈↓␈↓βCOMPARITIVE␈α∀CONCEPT␈α∃FORMATION␈↓.␈α∀Same␈α∃as␈α∀above,␈α∃but␈α∀then␈α∃we␈α∀must
␈↓ α,␈↓partially␈α≠order␈α≠the␈α~equivalence␈α≠classes␈α≠of␈α~the␈α≠partition.␈α≠It␈α~is
␈↓ α,␈↓harder, also.

␈↓ α,␈↓␈↓βMETRICAL␈α∪CONCEPT␈α∪FORMATION␈↓.␈α∪Same␈α∪as␈α∪previous␈α∪BEING,␈α∪but␈α∀we␈α∪must
␈↓ α,␈↓also␈α⊃induce␈α∩a␈α⊃metric␈α⊃on␈α∩the␈α⊃partial␈α⊃ordering␈α∩of␈α⊃the␈α⊃classes.␈α∩This␈α⊃is
␈↓ α,␈↓even more complicated.

␈↓ α,␈↓Since␈α≥we␈α≥actually␈α≥do␈α≥classificatory␈α≤CF,␈α≥the␈α≥BEINGs␈α≥to␈α≥order␈α≤a
␈↓ α,␈↓partition and to metrize an ordering weren't implemented.

␈↓ α,␈↓␈↓βPARTITION␈α!A␈α!DOMAIN␈↓␈α!in␈α a␈α!guessing,␈α!interactive␈α!manner.␈α  The
␈↓ α,␈↓partition␈α≤may␈α≠be␈α≤only␈α≤partial,␈α≠it␈α≤may␈α≤be␈α≠only␈α≤weak,␈α≤and,␈α≠most
␈↓ α,␈↓crucially,␈α∪the␈α∪BEING␈α∩must␈α∪be␈α∪able␈α∩to␈α∪do␈α∪some␈α∩of␈α∪these:␈α∪partition␈α∩by
␈↓ α,␈↓accepting␈α∃an␈α∃element␈α∃and␈α∃getting␈α∀its␈α∃class␈α∃name␈α∃(guessing␈α∃the␈α∀name
␈↓ α,␈↓and␈α∃then␈α∃checking␈α∃it␈α∃somehow),␈α∀partition␈α∃by␈α∃accepting␈α∃a␈α∃class␈α∀name
␈↓ α,␈↓and␈α⊂getting␈α⊂its␈α⊂member␈α⊂elements,␈α⊂partition␈α⊂by␈α⊂accepting␈α⊂ordered␈α⊂pairs
␈↓ α,␈↓<element,␈α≤classname>.␈α≤ The␈α≤fringe␈α≤of␈α≤conciousness␈α≤demon␈α≤must␈α≤be
␈↓ α,␈↓activated from now on.

␈↓ α,␈↓␈↓βPARTITION␈α⊂BY␈α⊂TAKE␈α⊂ELEMENT␈α⊂GET␈α⊂CLASS␈↓.␈α⊂Take␈α⊂hold␈α⊂of␈α⊂an␈α⊃element␈α⊂(by
␈↓ α,␈↓reading,␈α⊃for␈α⊃example),␈α⊃and␈α∩then␈α⊃work␈α⊃to␈α⊃get␈α∩the␈α⊃name␈α⊃of␈α⊃the␈α∩class␈α⊃it
␈↓ α,␈↓belongs␈α⊂to␈α⊂(by␈α⊂guessing,␈α⊂then␈α⊂verifying␈α⊂the␈α⊂guess,␈α⊂for␈α⊂example).␈α⊂Then
␈↓ α,␈↓modify the structure of the class(es) involved.

␈↓ α,␈↓␈↓βPARTITION␈α∪BY␈α∪TAKE␈α∪CLASS␈α∪GET␈α∪ELEMENT␈↓.␈α∪Take␈α∪hld␈α∪of␈α∪a␈α∪class␈α∪name,
␈↓ α,␈↓and␈α⊃then␈α∩work␈α⊃to␈α∩get␈α⊃elements␈α∩it␈α⊃contains.␈α∩Then␈α⊃modify␈α∩the␈α⊃structure
␈↓ α,␈↓of the class and the element(s) involved.

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α)page A2.2␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓βPARTITION␈α∞BY␈α∞TAKE␈α∞ELEMENT␈α
AND␈α∞CLASS␈↓␈α∞simultaneously.␈α∞Taake␈α∞hold␈α
of
␈↓ α,␈↓both␈α∀an␈α∃element␈α∀and␈α∀its␈α∃corresponding␈α∀class␈α∀name,␈α∃and␈α∀use␈α∃these␈α∀to
␈↓ α,␈↓modify␈α≡the␈α≡structure␈α≡of␈α∨the␈α≡partition;␈α≡i.e.,␈α≡modify␈α∨the␈α≡class
␈↓ α,␈↓mentioned if the partition is stored by classes.

␈↓ α,␈↓␈↓∧B. Low-level, domain-specific knowledge␈↓

␈↓ α,␈↓␈↓βRECOGNIZE␈α↔CONTRADICTION␈↓.␈α↔ It␈α_can␈α↔translate␈α↔"...␈α_is␈α↔incompatible
␈↓ α,␈↓with␈α⊃...".␈α∩It␈α⊃is␈α⊃a␈α∩predicate,␈α⊃fairly␈α⊃easy␈α∩to␈α⊃write␈α⊃therefore.␈α∩ It␈α⊃is
␈↓ α,␈↓composed␈α#of␈α#SOMEOF␈α"the␈α#following:␈α#Probability≡0␈α"contradiction,
␈↓ α,␈↓Probability≡1␈α≠contradiction,␈α≠Probability␈α~>0␈α≠and␈α≠<1␈α~contradiction.
␈↓ α,␈↓Since␈α⊃these␈α∩names␈α⊃are␈α∩fairly␈α⊃cryptic,␈α∩some␈α⊃of␈α∩their␈α⊃parts␈α∩(e.g,␈α⊃HOW)
␈↓ α,␈↓must␈α~be␈α~printed␈α~out␈α~to␈α≠help␈α~the␈α~user␈α~choose␈α~(whenever␈α≠they␈α~are
␈↓ α,␈↓involved, if the user asks for ramifications.)

␈↓ α,␈↓␈↓βPROBABILITY␈α∂≡␈α⊂0␈α∂CONTRADICITON␈↓.␈α∂Since␈α⊂this␈α∂is␈α∂a␈α⊂very␈α∂simple␈α⊂thing␈α∂in
␈↓ α,␈↓our␈α≠domain␈α≠of␈α~concept␈α≠formation,␈α≠it␈α~is␈α≠immediately␈α≠encodable␈α~as
␈↓ α,␈↓(MEMBER␈α≥arg1␈α≥arg2).␈α≥ That␈α≥is,␈α≤if␈α≥arg1␈α≥has␈α≥probability␈α≥zero␈α≤of
␈↓ α,␈↓occurring in arg2, yet it does, then we have a contradiction.

␈↓ α,␈↓␈↓βPROBABILITY␈α≥≡␈α≥1␈α≤CONTRADICTION␈↓.␈α≥ Immediately␈α≥encodable␈α≥as␈α≤(NOT
␈↓ α,␈↓(MEMBER␈α⊗arg1␈α↔arg2)).␈α⊗ If␈α↔arg1␈α⊗has␈α⊗probability␈α↔one␈α⊗of␈α↔occurring␈α⊗in
␈↓ α,␈↓arg2, yet it doesn't, then we have a contradiction.

␈↓ α,␈↓␈↓βPROBABILITY␈α↔>0␈α⊗AND␈α↔<1␈α⊗CONTRADICTION␈↓.␈α↔ Immediately␈α↔enacodable␈α⊗as
␈↓ α,␈↓NIL.␈α↔ If␈α_arg1␈α↔might␈α↔and␈α_might␈α↔not␈α_occur␈α↔in␈α↔arg2,␈α_we␈α↔can't␈α_get␈α↔a
␈↓ α,␈↓contradiction␈α∃just␈α⊗by␈α∃checking␈α∃its␈α⊗membership.␈α∃Of␈α∃course,␈α⊗the␈α∃idea
␈↓ α,␈↓that␈α⊃this␈α∩is␈α⊃the␈α⊃only␈α∩way␈α⊃to␈α⊃prove␈α∩contradiction␈α⊃is␈α⊃what␈α∩makes␈α⊃these
␈↓ α,␈↓BEINGs domain-specific!

␈↓ α,␈↓␈↓β.SCENE␈↓.␈α⊗This␈α⊗is␈α⊗a␈α↔data␈α⊗structure,␈α⊗composed␈α⊗of␈α⊗four␈α↔subparts.␈α⊗ The
␈↓ α,␈↓first␈α⊂is␈α⊂a␈α⊂set␈α⊂O␈α⊂of␈α⊂objects.␈α⊂Next␈α⊂is␈α⊂an␈α⊂atom␈α⊂indicating␈α⊂the␈α⊂name␈α⊂N␈α⊂of
␈↓ α,␈↓the␈α⊂scene.␈α⊂Next␈α⊂come␈α⊂two␈α⊂lists␈α⊂of␈α⊂features,␈α⊂where␈α⊂a␈α⊂feature␈α⊂is␈α⊂just␈α⊂a
␈↓ α,␈↓predicate␈α⊗and␈α↔its␈α⊗arguments.␈α↔ The␈α⊗first␈α⊗is␈α↔the␈α⊗static␈α↔relations␈α⊗S
␈↓ α,␈↓between␈α→objects.␈α→Finally␈α→we␈α→have␈α→the␈α→dynamic␈α→relations␈α→D␈α_between
␈↓ α,␈↓objects.

␈↓ α,␈↓␈↓∧C. Ubiquitous, problem-independent BEINGs and functions␈↓

␈↓ α,␈↓␈↓βCHOOSE␈α∀FROM␈↓.␈α∀ All␈α∀its␈α∀arguments␈α∀must␈α∀be␈α∀BEINGs,␈α∀else␈α∀it␈α∃prints␈α∀a
␈↓ α,␈↓nasty␈α⊃warning␈α∩message.␈α⊃We␈α⊃select␈α∩the␈α⊃best␈α⊃BEING␈α∩and␈α⊃apply␈α⊃it.␈α∩ If␈α⊃it
␈↓ α,␈↓fails,␈α⊗we␈α⊗re-order␈α⊗the␈α⊗remaining␈α∃BEINGs␈α⊗and␈α⊗apply␈α⊗the␈α⊗best␈α⊗one␈α∃of
␈↓ α,␈↓them.␈α∩Note␈α⊃that␈α∩this␈α∩new␈α⊃reordering␈α∩may␈α⊃use␈α∩knowledge␈α∩gleaned␈α⊃during
␈↓ α,␈↓the␈α→earlier,␈α→unsuccessful␈α→BEING␈α→try.␈α→ Thus,␈α→this␈α→is␈α→a␈α_(possible)
␈↓ α,␈↓intelligent␈α∩nondeterministic␈α∩branch␈α∪point.␈α∩The␈α∩intelligence␈α∪lies␈α∩(or
␈↓ α,␈↓fails␈α∪to␈α∪lie)␈α∪in␈α∀the␈α∪comparison␈α∪function,␈α∪BETTER,␈α∪which␈α∀decides␈α∪who
␈↓ α,␈↓goes next.


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α)page A2.3␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓βSATISFY␈↓.␈α%This␈α$is␈α%the␈α%equivalent␈α$of␈α%a␈α%pattern-directed␈α$goal
␈↓ α,␈↓statement.␈α⊂ We␈α⊂ask␈α⊂each␈α⊂BEING,␈α⊂"Can␈α⊂you␈α⊂do␈α⊂anything␈α⊂matching␈α⊂x?".␈α⊂ We
␈↓ α,␈↓take␈α∃the␈α∃list␈α∃of␈α∃those␈α∀answering␈α∃affirmatively,␈α∃and␈α∃CHOOSE␈α∃FROM␈α∀it
␈↓ α,␈↓one␈α≠BEING␈α≠after␈α~another␈α≠until␈α≠the␈α~desired␈α≠effects␈α≠are␈α~realized.
␈↓ α,␈↓Notice␈α"that␈α!a␈α"BEING␈α"who␈α!said␈α""probably"␈α!may␈α"succeed␈α"in␈α!his
␈↓ α,␈↓application␈α~and␈α~yet␈α~not␈α~effect␈α≠the␈α~result␈α~we␈α~wanted,␈α~so␈α≠that␈α~a
␈↓ α,␈↓trivial␈α↔call␈α↔on␈α↔CHOOSE␈α↔FROM␈α↔is␈α↔insufficient.␈α↔ The␈α_BEINGs␈α↔possibly
␈↓ α,␈↓affected are just those answering affirmatively.

␈↓ α,␈↓␈↓βMESSAGE␈↓.␈α↔ This␈α⊗BEING␈α↔has␈α↔a␈α⊗main␈α↔effect␈α↔(AWARE␈α⊗USER␈α↔x),␈α↔hence␈α⊗is
␈↓ α,␈↓very␈α_frequently␈α_called.␈α_ The␈α_forgetful-user␈α_demon␈α_trims␈α_the␈α_aware
␈↓ α,␈↓user␈α∀list␈α∃periodically.␈α∀ Message␈α∀looks␈α∃to␈α∀see␈α∀if␈α∃its␈α∀message␈α∃is␈α∀on
␈↓ α,␈↓that␈α⊂list;␈α⊂if␈α⊂not,␈α⊂it␈α⊂inserts␈α⊂it␈α⊂and␈α⊂prints␈α⊂it␈α⊂out␈α⊂to␈α⊂the␈α⊂user.␈α⊂If␈α⊂it
␈↓ α,␈↓is,␈α↔it␈α↔moves␈α⊗the␈α↔message␈α↔to␈α⊗the␈α↔front␈α↔of␈α⊗the␈α↔aware-user␈α↔list␈α⊗and
␈↓ α,␈↓prints␈α≠out␈α≠nothing.␈α≠This␈α≤is␈α≠an␈α≠example␈α≠of␈α≠a␈α≤specialized,␈α≠fixed
␈↓ α,␈↓assertion-list, as described earlier.

␈↓ α,␈↓␈↓βDETERMINE␈α⊃ARG␈α⊃VALUES␈↓.␈α⊃These␈α⊃functions␈α⊃take␈α⊃as␈α⊃input␈α⊃the␈α⊃name␈α⊃of␈α⊂a
␈↓ α,␈↓function,␈α⊃and␈α∩output␈α⊃a␈α∩description␈α⊃of␈α∩what␈α⊃arguments␈α∩it␈α⊃will␈α∩ever␈α⊃be
␈↓ α,␈↓called␈α∪with␈α∪(in␈α∪the␈α∪existing␈α∪code.)␈α∪For␈α∪example,␈α∪it␈α∪might␈α∪say␈α∩"arg1
␈↓ α,␈↓will␈α→always␈α→be␈α→NAME:OF:CLASS,␈α→and␈α→arg2␈α→will␈α→consecutively␈α→be␈α_all
␈↓ α,␈↓integers␈α⊂from␈α⊂3␈α⊂to␈α⊂(LENGTH␈α⊂SET:OF:CLASSES)".␈α⊂At␈α⊂present␈α⊂these␈α⊂work␈α⊂in
␈↓ α,␈↓the␈α∩obvious␈α⊃way,␈α∩looking␈α∩at␈α⊃everything.␈α∩The␈α⊃tremendous␈α∩amount␈α∩of␈α⊃CPU
␈↓ α,␈↓time␈α~spent␈α→in␈α~these␈α~functions␈α→indicates␈α~that␈α→I␈α~should␈α~have␈α→made
␈↓ α,␈↓special␈α↔assert:lists␈α↔for␈α↔argument␈α↔instantiations,␈α↔and␈α↔updated␈α⊗them
␈↓ α,␈↓each time a BEING is called in the target code.

␈↓ α,␈↓␈↓βFLOW-PRECEDED␈↓.␈α∀ This␈α∀BEING␈α∀must␈α∀search␈α∀through␈α∀he␈α∀code␈α∀to␈α∃find␈α∀a
␈↓ α,␈↓form␈α∪matching␈α∪a␈α∪given␈α∪pattern.␈α∪ Although␈α∪it␈α∪is␈α∪used␈α∪under␈α∪ten␈α∩times
␈↓ α,␈↓in␈α∩the␈α∪total␈α∩dialog,␈α∪it␈α∩is␈α∪so␈α∩costly␈α∪that␈α∩I've␈α∪implemented␈α∩it␈α∪as␈α∩an
␈↓ α,␈↓ask-the-user␈α∪call.␈α∪Work␈α∪must␈α∪be␈α∪done␈α∪here␈α∪to␈α∪understand␈α∪why␈α∪this␈α∩is
␈↓ α,␈↓so inefficient, and to remedy it.

␈↓ α,␈↓␈↓βFIND␈α∪AND␈α∪TAG␈↓.␈α∪This␈α∀BEING␈α∪is␈α∪similar␈α∪to␈α∪flow-preceded,␈α∀except␈α∪that
␈↓ α,␈↓the␈α≡pattern-matching␈α≡is␈α≡between␈α≡two␈α≡constant␈α≡strings.␈α≡ This␈α≡is
␈↓ α,␈↓tolerably␈α∃efficient␈α∃in␈α∃CPU␈α∃time␈α∀and␈α∃is␈α∃used␈α∃heavily␈α∃throughout␈α∀the
␈↓ α,␈↓writing of CF.

␈↓ α,␈↓␈↓βTRANSLATE␈↓.␈α⊃The␈α⊃natural␈α⊃language␈α⊃front␈α⊂end␈α⊃is␈α⊃managed␈α⊃by␈α⊃this␈α⊂BEING.
␈↓ α,␈↓It␈α∪asks␈α∪each␈α∪BEING␈α∀whether␈α∪it␈α∪recognizes␈α∪a␈α∪given␈α∀string.␈α∪ Translate
␈↓ α,␈↓then␈α≠takes␈α≠the␈α~"best"␈α≠--␈α≠the␈α~most␈α≠probable␈α≠--␈α~of␈α≠these␈α≠as␈α~the
␈↓ α,␈↓translation,␈α.and␈α.can␈α-backtrack␈α.and␈α.reorder␈α.the␈α-remaining
␈↓ α,␈↓interpretations␈α⊂if␈α⊂it␈α⊂has␈α⊂to.␈α⊂If␈α⊂called␈α⊂with␈α⊂no␈α⊂argument,␈α⊂it␈α⊂examines
␈↓ α,␈↓various␈α∀assert-lists␈α∀to␈α∀see␈α∀if␈α∀it␈α∀can␈α∀do␈α∀any␈α∀good.␈α∀The␈α∀idiom␈α∀demon
␈↓ α,␈↓must be activated during the control period of this BEING.

␈↓ α,␈↓␈↓βREINVESTIGATE␈α≠DECISION␈↓.␈α~This␈α≠is␈α~usaully␈α≠called␈α~by␈α≠a␈α≠demon␈α~who


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α)page A2.4␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓watches␈α∀the␈α∀deferred-decision␈α∀assert␈α∀list.␈α∀We␈α∀transfer␈α∀the␈α∀decision
␈↓ α,␈↓in␈α⊂question␈α⊂from␈α⊂the␈α⊂deferred␈α⊂to␈α⊂the␈α⊂undeferred␈α⊂decision␈α⊂assert␈α⊂list.
␈↓ α,␈↓A␈α⊂deferral␈α⊂demon␈α⊂will␈α⊂promptly␈α⊂react␈α⊂to␈α⊂anything␈α⊂on␈α⊂this␈α⊂latter␈α⊂list.
␈↓ α,␈↓An␈α⊂interesting␈α⊂caution:␈α⊂it␈α⊂was␈α⊂necessary␈α⊂to␈α⊂inhibit␈α⊂all␈α⊂demons␈α⊂during
␈↓ α,␈↓the␈α≠execution␈α≠of␈α≠this␈α≤BEING,␈α≠for␈α≠reasons␈α≠very␈α≠similar␈α≤to␈α≠those
␈↓ α,␈↓leading␈α⊃to␈α∩lock␈α⊃and␈α∩unlock␈α⊃system␈α∩commands.␈α⊃The␈α∩fact␈α⊃that␈α∩some␈α⊃BEING
␈↓ α,␈↓might␈α→have␈α→to␈α→be␈α→demon-uninterruptable␈α→forced␈α→us␈α→to␈α→institute␈α_an
␈↓ α,␈↓entire new question asking just about this tiny point!

␈↓ α,␈↓␈↓βDEFER␈α↔DECISION␈↓.␈α↔Remove␈α↔the␈α⊗decision␈α↔from␈α↔the␈α↔undeferred␈α⊗decision
␈↓ α,␈↓assert␈α∩list.␈α∩Determine␈α∩the␈α⊃situation␈α∩when␈α∩we␈α∩must␈α∩next␈α⊃reinvestigate
␈↓ α,␈↓this␈α∪decision.␈α∪This␈α∪will␈α∪be␈α∪some␈α∪predicate␈α∪examing␈α∪the␈α∪state␈α∪of␈α∩the
␈↓ α,␈↓world.␈α_ If␈α_this␈α_predicate␈α_is␈α_true␈α_currently,␈α_we␈α_must␈α_resolve␈α_the
␈↓ α,␈↓decision␈α⊂now.␈α⊂Otherwise,␈α⊂we␈α⊂put␈α⊂the␈α⊂decision␈α⊂on␈α⊂the␈α⊂deferred␈α⊂decision
␈↓ α,␈↓list,␈α⊂attached␈α⊂to␈α⊂its␈α⊂(new)␈α⊂reinvestigation␈α⊂predicate.␈α⊂Demons␈α⊂must␈α⊂be
␈↓ α,␈↓inhibited␈α∃during␈α∃this␈α∃BEING's␈α∃reign,␈α∀to␈α∃ensure␈α∃that␈α∃its␈α∃notions␈α∀of
␈↓ α,␈↓the world are accurate upon exit.

␈↓ α,␈↓␈↓βWHEN␈α↔NEXT␈↓.␈α↔ Manipulate␈α↔the␈α↔decision␈α↔to␈α↔extract␈α↔the␈α↔name␈α↔of␈α↔the
␈↓ α,␈↓variable␈α≠holding␈α≤information␈α≠relevant␈α≤to␈α≠deferring␈α≤the␈α≠decision.
␈↓ α,␈↓Utilize␈α↔this␈α↔knowledge␈α_so␈α↔as␈α↔to␈α↔keep␈α_the␈α↔effects␈α↔of␈α_the␈α↔decision
␈↓ α,␈↓irrelevant;␈α⊗i.e.,␈α↔find␈α⊗the␈α↔(next)␈α⊗situation␈α⊗in␈α↔which␈α⊗they␈α↔are␈α⊗not
␈↓ α,␈↓irrelevant.␈α⊂ Whoever␈α⊂called␈α⊂this␈α⊂BEING␈α⊂is␈α⊂now␈α⊂asserted␈α⊂to␈α⊂be␈α⊂aware␈α⊂of
␈↓ α,␈↓its␈α↔results.␈α↔This␈α_is␈α↔fairly␈α↔complex,␈α↔and␈α_the␈α↔BEING␈α↔is␈α_not␈α↔called
␈↓ α,␈↓unless␈α∩it␈α∪is␈α∩necessary.␈α∪As␈α∩it␈α∪happens,␈α∩it␈α∪is␈α∩called␈α∪a␈α∩few␈α∪times␈α∩for
␈↓ α,␈↓every␈α⊗decision␈α⊗to␈α⊗be␈α⊗made␈α∃about␈α⊗every␈α⊗BEING␈α⊗in␈α⊗the␈α⊗target␈α∃program
␈↓ α,␈↓(several hundred times).

␈↓ α,␈↓␈↓βUTILIZE␈↓.␈α⊃ This␈α⊃BEING␈α∩applies␈α⊃various␈α⊃knowledge␈α∩"variables,"␈α⊃starting
␈↓ α,␈↓at␈α∀specific␈α∃ones␈α∀and␈α∀moving␈α∃toward␈α∀very␈α∀general␈α∃ones,␈α∀until␈α∃one␈α∀of
␈↓ α,␈↓them reports it is able to acheive the desired goal.

␈↓ α,␈↓␈↓βRESOLVE␈α∃DECISION␈↓.␈α∀Again,␈α∃all␈α∀demons␈α∃must␈α∀be␈α∃inhibited.␈α∃After␈α∀some
␈↓ α,␈↓preliminary␈α→searching␈α→and␈α→very␈α→trivial␈α→theorem-proving␈α~fail,␈α→this
␈↓ α,␈↓BEING␈α≤resorts␈α≠to␈α≤asking␈α≤the␈α≠user␈α≤about␈α≤how␈α≠to␈α≤resolve␈α≤a␈α≠given
␈↓ α,␈↓decision.

␈↓ α,␈↓␈↓βASK␈α↔USER␈α↔ABOUT␈↓.␈α↔We␈α⊗determine␈α↔the␈α↔argument␈α↔instantiations␈α↔of␈α⊗the
␈↓ α,␈↓little␈α_piece␈α_of␈α_code␈α_we're␈α_worrying␈α_about,␈α_determine␈α_the␈α_type␈α_of
␈↓ α,␈↓decision␈α⊂to␈α⊂be␈α⊂made,␈α⊂and␈α⊂apply␈α⊂the␈α⊂specific␈α⊂knowledge␈α⊂variable␈α⊂for␈α⊂x-
␈↓ α,␈↓ing␈α⊃that␈α⊃type␈α⊃of␈α∩decision.␈α⊃Here,␈α⊃we␈α⊃get␈α∩x␈α⊃by␈α⊃examing␈α⊃who␈α∩called␈α⊃this
␈↓ α,␈↓BEING␈α∪and␈α∪why.␈α∪To␈α∀write␈α∪a␈α∪specialized␈α∪version␈α∪of␈α∀ask-user-about,␈α∪we
␈↓ α,␈↓just␈α_write␈α_a␈α_standard␈α_print,␈α_read,␈α_and␈α_assign␈α_function,␈α_with␈α_the
␈↓ α,␈↓details left unspecified until the sample session is read in.

␈↓ α,␈↓␈↓βBETTER␈↓.␈α_This␈α_function␈α_is␈α_used␈α_to␈α_compare␈α_two␈α_BEINGs,␈α_and␈α_decide
␈↓ α,␈↓which␈α∃of␈α∃them␈α∃should␈α∃gain␈α∀control.␈α∃ It␈α∃evaluates␈α∃their␈α∃WHEN␈α∀parts,


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α)page A2.5␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓and␈α⊗if␈α↔they␈α⊗tie␈α↔it␈α⊗evaluates␈α⊗their␈α↔complexity␈α⊗vectors.␈α↔ Note␈α⊗that
␈↓ α,␈↓"eval"␈α∪here␈α∪is␈α∪not␈α∀trivial:␈α∪each␈α∪dimension␈α∪of␈α∪the␈α∀complexity␈α∪vector
␈↓ α,␈↓of␈α→a␈α→BEING␈α_can␈α→be␈α→a␈α→little␈α_program␈α→which␈α→examines␈α→itself,␈α_other
␈↓ α,␈↓BEINGs,␈α⊗and␈α⊗the␈α⊗state␈α⊗of␈α∃the␈α⊗world␈α⊗before␈α⊗deciding␈α⊗on␈α⊗a␈α∃numerical
␈↓ α,␈↓answer to return.

␈↓ α,␈↓␈↓∧Handling␈α∪of␈α∪User␈α∪Interrupts␈↓.␈α∩ There␈α∪are␈α∪several␈α∪functions␈α∪and␈α∩BEINGs
␈↓ α,␈↓involved␈α⊂in␈α⊂this␈α⊂process.␈α⊂Initially,␈α⊂the␈α⊂user␈α⊂describes␈α⊂how␈α⊂often␈α⊂the
␈↓ α,␈↓system␈α⊃is␈α∩to␈α⊃give␈α⊃him␈α∩the␈α⊃opportunity␈α⊃to␈α∩interrupt␈α⊃and␈α⊃query␈α∩it.␈α⊃ At
␈↓ α,␈↓each␈α⊂of␈α⊂these␈α⊂times,␈α⊂the␈α⊂HANDLE␈α⊂USER␈α⊂INTERRUPT␈α⊂function␈α⊂asks␈α⊂the␈α⊂user
␈↓ α,␈↓if␈α⊃he␈α∩wants␈α⊃to␈α⊃interrupt;␈α∩if␈α⊃so,␈α⊃PROCESS␈α∩USER␈α⊃INTERRUPT␈α⊃is␈α∩called␈α⊃to
␈↓ α,␈↓do␈α∩the␈α∪job.␈α∩In␈α∪addition␈α∩to␈α∪asking␈α∩for␈α∪pieces␈α∩of␈α∪any␈α∩BEING,␈α∪the␈α∩user
␈↓ α,␈↓may␈α∃request␈α⊗limited␈α∃simulated␈α∃execution␈α⊗of␈α∃various␈α∃pieces,␈α⊗and␈α∃may
␈↓ α,␈↓order the current BEING to FAIL.

␈↓ α,␈↓␈↓∧D.  High-level, problem-independent knowledge: how to write programs␈↓

␈↓ α,␈↓␈↓βSERVE␈↓.␈α_Obtain␈α_information␈α↔until␈α_some␈α_of␈α↔it␈α_is␈α_"executable,"␈α↔then
␈↓ α,␈↓carry␈α∃it␈α⊗out.␈α∃ The␈α∃forgetful-user␈α⊗demon␈α∃is␈α∃activated.␈α⊗Without␈α∃this
␈↓ α,␈↓top-level␈α∀purpose,␈α∪PUP6␈α∀sits␈α∪contentedly,␈α∀never␈α∪wanting␈α∀to␈α∀accept␈α∪a
␈↓ α,␈↓new task.

␈↓ α,␈↓␈↓βWRITE␈α∪PROGRAM␈↓.␈α∪The␈α∪user␈α∪must␈α∪be␈α∪made␈α∪aware␈α∪that␈α∪PUP6␈α∪is␈α∪about␈α∩to
␈↓ α,␈↓write␈α∩a␈α∪program,␈α∩what␈α∪kind␈α∩of␈α∪program␈α∩it␈α∪is,␈α∩what␈α∪its␈α∩name␈α∪is␈α∩(this
␈↓ α,␈↓will␈α≤force␈α≠a␈α≤get-name␈α≤BEING␈α≠call),␈α≤and␈α≤that␈α≠its␈α≤type␈α≤has␈α≠been
␈↓ α,␈↓examined␈α∃(this␈α∃will␈α∃cause␈α∃a␈α∀study-type␈α∃BEING␈α∃call).␈α∃ Upon␈α∃exit,␈α∀he
␈↓ α,␈↓must␈α_be␈α_told␈α_that␈α_PUP6␈α_has␈α_completed␈α_the␈α_task,␈α_and␈α_what␈α_its␈α_new
␈↓ α,␈↓capabilities␈α∪are.␈α∪To␈α∪wite␈α∪a␈α∪program,␈α∪one␈α∪enters␈α∪a␈α∪loop,␈α∪broken␈α∩only
␈↓ α,␈↓when␈α∀several␈α∀completion␈α∀conditions␈α∀are␈α∀all␈α∀true␈α∀simultaneously:␈α∀the
␈↓ α,␈↓top-level␈α⊗task␈α⊗is␈α⊗now␈α⊗a␈α∃BEING,␈α⊗there␈α⊗are␈α⊗no␈α⊗undefined␈α⊗sections␈α∃of
␈↓ α,␈↓code,␈α≥there␈α≥are␈α≥no␈α≥warnings␈α≥left␈α≥about␈α≥the␈α≥code,␈α≥there␈α≡is␈α≥no
␈↓ α,␈↓executable␈α~information␈α~anywhere,␈α~there␈α~is␈α~no␈α~new␈α~but␈α~unprocessed
␈↓ α,␈↓information,␈α≤there␈α≤are␈α≤no␈α≤decisions␈α≤still␈α≤pending␈α≤(except␈α≤those
␈↓ α,␈↓requiring␈α∀"everything␈α∪else"␈α∀to␈α∪be␈α∀complete;␈α∪e.g.,␈α∀the␈α∀adaptation␈α∪of
␈↓ α,␈↓output␈α∃formats␈α⊗using␈α∃a␈α∃sample␈α⊗session).␈α∃If␈α∃we␈α⊗do␈α∃break␈α∃out␈α⊗of␈α∃the
␈↓ α,␈↓loop,␈α∪we␈α∪must␈α∩update␈α∪the␈α∪list␈α∩of␈α∪programs␈α∪written,␈α∩the␈α∪list␈α∪of␈α∩what
␈↓ α,␈↓PUP6␈α⊃can␈α⊃now␈α⊃do,␈α⊃of␈α⊃what␈α⊃the␈α⊃user␈α⊃may␈α⊃do,␈α⊃we␈α⊃find␈α⊃the␈α⊃set␈α∩of␈α⊃support
␈↓ α,␈↓of␈α≤the␈α≠top-level␈α≤task␈α≤and␈α≠create␈α≤a␈α≤new␈α≠file␈α≤with␈α≤the␈α≠relevant
␈↓ α,␈↓functions␈α⊂and␈α⊂BEINGs␈α⊂(which␈α⊂automatically␈α⊂does␈α⊂global␈α⊂initializations
␈↓ α,␈↓and␈α⊂then␈α⊂enters␈α⊂the␈α⊂top-level␈α⊂task␈α⊂instead␈α⊂of␈α⊂SERVE).␈α⊂ In␈α⊂general,␈α⊂of
␈↓ α,␈↓course,␈α⊂we␈α⊂won't␈α⊂break␈α⊂out,␈α⊂so␈α⊂we␈α⊂activate␈α⊂all␈α⊂the␈α⊂current␈α⊂demons␈α⊂and
␈↓ α,␈↓go␈α∪on.␈α∀All␈α∪the␈α∀body␈α∪of␈α∀the␈α∪loop␈α∪is␈α∀is␈α∪one␈α∀CHOOSE␈α∪FROM,␈α∀between␈α∪six
␈↓ α,␈↓alternatives:␈α_obtaining␈α_some␈α_usable␈α_info,␈α_using␈α_some␈α_usable␈α_info,
␈↓ α,␈↓filling␈α$in␈α$some␈α$function␈α$call␈α$which␈α$is␈α$currently␈α$undefined,
␈↓ α,␈↓clarifying␈α⊃some␈α∩little␈α⊃piece␈α∩of␈α⊃code␈α∩known␈α⊃to␈α∩be␈α⊃improbable␈α∩for␈α⊃some
␈↓ α,␈↓specific␈α→reason,␈α→adapting␈α→some␈α→known␈α→function␈α→to␈α→conform␈α→to␈α_some
␈↓ α,␈↓specific␈α∃new␈α⊗requirements,␈α∃fixing␈α∃some␈α⊗piece␈α∃of␈α∃code␈α⊗which␈α∃doesn't


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α)page A2.6␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓work␈α⊗the␈α⊗way␈α⊗it␈α⊗claims␈α⊗to␈α↔work.␈α⊗The␈α⊗last␈α⊗two␈α⊗of␈α⊗these␈α↔are␈α⊗simply
␈↓ α,␈↓program␈α∀modification␈α∀and␈α∀debugging,␈α∀respectively!␈α∀Failure␈α∀of␈α∀one␈α∀of
␈↓ α,␈↓these␈α⊂six␈α⊂BEINGs␈α⊂simply␈α⊂causes␈α⊂CHOOSEFROM␈α⊂to␈α⊂try␈α⊂another␈α⊂one;␈α⊂failure
␈↓ α,␈↓of␈α∪a␈α∪demon␈α∩causes␈α∪the␈α∪whole␈α∩WRITE␈α∪PROGRAM␈α∪BEING␈α∩to␈α∪fail.␈α∪During␈α∩its
␈↓ α,␈↓reign,␈α?␈α↓the␈α?␈α↓program-writing␈α?␈α↓demons,␈α?␈α↓deferral-demon,␈α?␈α↓and
␈↓ α,␈↓reinvestigation-demon␈α↔are␈α↔all␈α↔activated.␈α↔ Its␈α↔complexity␈α↔vector␈α⊗is
␈↓ α,␈↓dependent upon that of the BEING closest to the task it must perform.

␈↓ α,␈↓␈↓βOBTAIN␈α∩USABLE␈α∩INFORMATION␈↓.␈α∩The␈α∩WHEN␈α∩part␈α∩informs␈α∩us␈α∩that␈α∪this␈α∩is
␈↓ α,␈↓always␈α⊃undesirable␈α∩(-10)␈α⊃but␈α⊃is␈α∩OK␈α⊃(111)␈α⊃if␈α∩there␈α⊃exists␈α⊃new␈α∩but␈α⊃not
␈↓ α,␈↓yet␈α∪usable␈α∪information.␈α∪All␈α∪we␈α∪do␈α∪here␈α∪is␈α∪CHOOSE␈α∪FROM␈α∪the␈α∩following
␈↓ α,␈↓four␈α↔alternatives:␈α↔translate␈α↔something,␈α↔get␈α↔brand␈α↔new␈α⊗information,
␈↓ α,␈↓analyze␈α_the␈α_implications␈α_of␈α_existing␈α_information,␈α_extract␈α_a␈α_small
␈↓ α,␈↓relevant subset of the existing information to concentrate on.

␈↓ α,␈↓␈↓βUSE␈α_INFORMATION␈↓.␈α_ This␈α→demands␈α_that␈α_some␈α→executable␈α_information
␈↓ α,␈↓exist.␈α∩We␈α∪select␈α∩one␈α∪such␈α∩piece,␈α∪and␈α∩try␈α∪to␈α∩execute␈α∪it.␈α∩If␈α∪we␈α∩fail,
␈↓ α,␈↓its␈α≤worth␈α≠is␈α≤decreased;␈α≤if␈α≠we␈α≤succeed,␈α≤it␈α≠is␈α≤removed␈α≤from␈α≠the
␈↓ α,␈↓executable info assert list.

␈↓ α,␈↓␈↓βFILL␈α∀IN␈α∀UNDEFINED␈α∀SECTION␈↓.␈α∀There␈α∀must␈α∀be␈α∀some␈α∀undefined␈α∀section.
␈↓ α,␈↓If␈α⊃so␈α∩(80)␈α⊃we␈α∩don't␈α⊃want␈α∩any␈α⊃hi-priority␈α∩(≤20)␈α⊃coding␈α∩warnings␈α⊃still
␈↓ α,␈↓around␈α∀(-150),␈α∃and␈α∀we␈α∀do␈α∃like␈α∀there␈α∀to␈α∃be␈α∀something␈α∃both␈α∀undefined
␈↓ α,␈↓and␈α∀known␈α∀to␈α∪be␈α∀encodable␈α∀(96).␈α∪We␈α∀fix␈α∀a␈α∪choice␈α∀of␈α∀what␈α∀to␈α∪encode,
␈↓ α,␈↓and␈α⊂try␈α⊂to␈α⊂acheive␈α⊂its␈α⊂encoding.␈α⊂If␈α⊂we␈α⊂fail,␈α⊂we␈α⊂update␈α⊂the␈α⊂difficulty
␈↓ α,␈↓of␈α≤that␈α≠choice,␈α≤and␈α≤may␈α≠assert␈α≤that␈α≤we␈α≠want␈α≤some␈α≤specific␈α≠new
␈↓ α,␈↓information␈α→to␈α→relieve␈α→the␈α→problem.␈α→ In␈α→addition␈α→to␈α→ENCODE,␈α_this
␈↓ α,␈↓BEING also may call MAKE ENCODABLE and STUDY TYPE.

␈↓ α,␈↓␈↓βCLARIFY␈α∂IMPROBABLE␈α∂SITUATION␈↓.␈α∂This␈α∂BEING␈α∂demands␈α∂that␈α∂something␈α∞of
␈↓ α,␈↓mediocre␈α⊂priority␈α⊂(≤500)␈α⊂exist␈α⊂on␈α⊂the␈α⊂coding␈α⊂warning␈α⊂assert-list.␈α⊂ It
␈↓ α,␈↓likes␈α⊂(51)␈α⊂this,␈α⊂and␈α⊂dislikes␈α⊂(-41)␈α⊂anything␈α⊂on␈α⊂the␈α⊂undefined␈α⊂section
␈↓ α,␈↓list,␈α⊂or␈α⊂anything␈α⊂(-200)␈α⊂on␈α⊂the␈α⊂encodable␈α⊂section␈α⊂list.␈α⊂ As␈α⊂always,␈α⊂a
␈↓ α,␈↓sentence␈α_is␈α_provided␈α_to␈α_justify␈α_each␈α_of␈α_these␈α_little␈α_beliefs.␈α_We
␈↓ α,␈↓choose␈α≡the␈α≡warning␈α≡with␈α≡the␈α≡highest␈α≡priority␈α≡(lowest␈α≡numerical
␈↓ α,␈↓weight)␈α∀on␈α∀the␈α∀coding␈α∀warning␈α∀list,␈α∀note␈α∀that␈α∀that␈α∀is␈α∀what␈α∀PUP6␈α∀is
␈↓ α,␈↓working␈α⊃on␈α⊃now,␈α⊃and␈α⊃do␈α⊃a␈α∩match␈α⊃to␈α⊃decide␈α⊃what␈α⊃type␈α⊃of␈α⊃warning␈α∩it␈α⊃is.
␈↓ α,␈↓(i)␈α⊃Replace␈α⊃x␈α⊃by␈α⊃y␈α⊃in␈α⊃z.␈α⊃Here␈α⊃these␈α⊃may␈α⊃be␈α⊃nonspecific;␈α⊃z␈α⊃may␈α∩be␈α⊃"in
␈↓ α,␈↓all␈α⊂code␈α⊂recently␈α⊂generated".␈α⊂The␈α⊂nature␈α⊂of␈α⊂y␈α⊂may␈α⊂cause␈α⊂us␈α⊂to␈α⊂include
␈↓ α,␈↓new␈α⊗warnings;␈α⊗y␈α⊗may␈α⊗mention␈α⊗a␈α↔new␈α⊗data␈α⊗structure.␈α⊗(ii)␈α⊗x␈α⊗in␈α↔y␈α⊗is
␈↓ α,␈↓undefined;␈α⊂probably␈α⊂z␈α⊂since␈α⊂r.␈α⊂This␈α⊂may␈α⊂cause␈α⊂us␈α⊂to␈α⊂add␈α⊂to␈α⊂the␈α⊂global
␈↓ α,␈↓initialization␈α∪list.␈α∪It␈α∪will␈α∪probably␈α∪cause␈α∪us␈α∪to␈α∪ask␈α∪the␈α∪user␈α∩what
␈↓ α,␈↓the␈α∃answer␈α∃is.␈α∃(iii)␈α∃x␈α∃is␈α∃a␈α∃data␈α∃structure␈α∃but␈α∃we␈α∃don't␈α∃know␈α∀much
␈↓ α,␈↓about␈α~it.␈α~We␈α~try␈α~to␈α≠find␈α~out␈α~its␈α~structure,␈α~how␈α≠to␈α~initialize,
␈↓ α,␈↓access,␈α⊂insert,␈α⊂delete,␈α⊂update␈α⊂it.␈α⊂A␈α⊂variant␈α⊂of␈α⊂this␈α⊂warning␈α⊂is:␈α⊂(iv)
␈↓ α,␈↓We␈α⊃find␈α⊃no␈α⊃x's␈α∩associated␈α⊃with␈α⊃data␈α⊃structure␈α∩y.␈α⊃Here␈α⊃x␈α⊃can␈α∩point␈α⊃to
␈↓ α,␈↓insertions,␈α∩deletions,␈α∩initializations,␈α∩etc.␈α∩If␈α∩we␈α∩can't␈α∩justify␈α∩the


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α)page A2.7␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓lack,␈α∀we␈α∀try␈α∀to␈α∀defer␈α∀the␈α∀decision.␈α∀Failing␈α∀that,␈α∀we␈α∀ask␈α∀the␈α∀user.
␈↓ α,␈↓(v)␈α⊃Command:␈α∩if␈α⊃x␈α⊃then␈α∩y.␈α⊃This␈α⊃is␈α∩a␈α⊃programmed␈α⊃demon;␈α∩when␈α⊃situation
␈↓ α,␈↓x␈α⊂is␈α⊂true,␈α⊂we␈α⊂must␈α⊂do␈α⊂y.␈α⊂(vi)␈α⊂Delete␈α⊂all␈α⊂mention␈α⊂of␈α⊂x.␈α⊂This␈α⊂is␈α⊂like␈α⊂a
␈↓ α,␈↓replace,␈α~but␈α~we␈α~go␈α~through␈α≠the␈α~assert␈α~lists␈α~with␈α~an␈α≠eye␈α~toward
␈↓ α,␈↓deleting␈α∪unnecessary␈α∪worries.␈α∪(vii)␈α∪Infinite␈α∪loop␈α∪in␈α∪x␈α∪from␈α∪y␈α∪to␈α∩z.
␈↓ α,␈↓If␈α⊃we␈α⊃can't␈α⊃justify␈α⊃this,␈α⊃we␈α∩insert␈α⊃a␈α⊃test␈α⊃to␈α⊃break␈α⊃out␈α⊃of␈α∩the␈α⊃loop.
␈↓ α,␈↓Justification␈α⊂might␈α⊂be␈α⊂that␈α⊂this␈α⊂loop␈α⊂is␈α⊂in␈α⊂the␈α⊂top-level␈α⊂function␈α⊂of
␈↓ α,␈↓the␈α,system,␈α-where␈α,we␈α-never␈α,wnat␈α-to␈α,break␈α-out.␈α, (viii)
␈↓ α,␈↓Incomprehensible:␈α⊃x,␈α∩y.␈α⊃(there␈α∩is␈α⊃a␈α∩"bug"␈α⊃in␈α∩x␈α⊃manifesting␈α∩itself␈α⊃as
␈↓ α,␈↓y)␈α⊗Never␈α⊗needed␈α⊗to␈α⊗write␈α∃CF,␈α⊗so␈α⊗not␈α⊗implemented.␈α⊗ Should␈α⊗call␈α∃FIX
␈↓ α,␈↓INCORRECT␈α→PIECE␈α~(which␈α→is␈α→also␈α~not␈α→in␈α→yet)␈α~or␈α→ask␈α→the␈α~user␈α→for
␈↓ α,␈↓assistance.

␈↓ α,␈↓␈↓βGET␈α⊃NEW␈α⊂INFORMATION␈↓.␈α⊃Naturally,␈α⊃it␈α⊂is␈α⊃not␈α⊂thrilled␈α⊃if␈α⊃(-68)␈α⊂there
␈↓ α,␈↓exists␈α∪some␈α∪new␈α∪but␈α∪unexamined␈α∪information,␈α∪and␈α∪it␈α∪is␈α∪happy␈α∪(50)␈α∩if
␈↓ α,␈↓there␈α⊗is␈α⊗none.␈α⊗The␈α⊗prerequisites␈α∃ensure␈α⊗that␈α⊗the␈α⊗user␈α⊗is␈α⊗aware␈α∃of
␈↓ α,␈↓what␈α⊗PUP6␈α⊗wants,␈α⊗and␈α⊗if␈α∃the␈α⊗theorem␈α⊗prover␈α⊗can't␈α⊗deliver␈α⊗it,␈α∃PUP6
␈↓ α,␈↓asks␈α↔the␈α↔user␈α_for␈α↔some.␈α↔If␈α↔PUP6␈α_asks␈α↔for␈α↔something␈α_general␈α↔("any
␈↓ α,␈↓task")␈α∪it␈α∪is␈α∩because␈α∪it␈α∪knows␈α∩precisely␈α∪that␈α∪this␈α∩is␈α∪what␈α∪it␈α∩wants,
␈↓ α,␈↓not␈α∀out␈α∪of␈α∀ignorance!␈α∪During␈α∀execution,␈α∪the␈α∀specificity␈α∀check␈α∪demon
␈↓ α,␈↓is␈α∀active;␈α∃he␈α∀ensures␈α∀that␈α∃it␈α∀is␈α∀indeed␈α∃phrased␈α∀as␈α∃specifically␈α∀as
␈↓ α,␈↓possible;␈α→if␈α→not,␈α_MAKE␈α→SPECIFIC␈α→will␈α→be␈α_called.␈α→ This␈α→is␈α→a␈α_very
␈↓ α,␈↓uncomplicated␈α⊃BEING,␈α∩and␈α⊃a␈α∩very␈α⊃unpopular␈α∩one␈α⊃to␈α∩use␈α⊃since␈α∩we␈α⊃should
␈↓ α,␈↓squeeze␈α∪every␈α∪drop␈α∩of␈α∪meaning␈α∪out␈α∩of␈α∪what␈α∪we␈α∩have␈α∪before␈α∪asking␈α∩for
␈↓ α,␈↓more information.

␈↓ α,␈↓␈↓βEXTRACT␈α⊃RELEVANT␈α⊃SUBSET␈↓.␈α⊃This␈α⊃likes␈α⊂(70)␈α⊃there␈α⊃to␈α⊃be␈α⊃a␈α⊃great␈α⊂deal
␈↓ α,␈↓(≥50␈α∪pieces)␈α∪of␈α∪new␈α∪information,␈α∪and␈α∪dislikes␈α∪(-80)␈α∪it␈α∪if␈α∪there␈α∩are
␈↓ α,␈↓under␈α⊂a␈α⊂dozen␈α⊂such␈α⊂tokens.␈α⊂It␈α⊂finds␈α⊂and␈α⊂evaluates␈α⊂knowledge␈α⊂variables
␈↓ α,␈↓to␈α⊂constrain␈α⊂what␈α⊂should␈α⊂be␈α⊂looked␈α⊂at␈α⊂currently.␈α⊂This␈α⊂is␈α⊂never␈α⊂called
␈↓ α,␈↓in the dialog, though it was in the protocol.

␈↓ α,␈↓␈↓βANALYZE␈α∀IMPLICATIONS␈↓.␈α∪The␈α∀WHEN␈α∀part␈α∪is␈α∀unhappy␈α∪(-60)␈α∀if␈α∀there␈α∪is
␈↓ α,␈↓usable␈α∃information␈α⊗already,␈α∃since␈α∃this␈α⊗BEING␈α∃is␈α∃fairly␈α⊗costly.␈α∃ It
␈↓ α,␈↓also␈α⊂examines␈α⊂the␈α⊂size␈α⊂of␈α⊂the␈α⊂new␈α⊂info␈α⊂list␈α⊂to␈α⊂see␈α⊂just␈α⊂how␈α⊂long␈α⊂this
␈↓ α,␈↓search␈α⊗will␈α⊗be.␈α⊗The␈α⊗BEING␈α∃locates␈α⊗the␈α⊗code␈α⊗that␈α⊗will␈α⊗be␈α∃affected,
␈↓ α,␈↓predicts␈α∪the␈α∪affects,␈α∪and␈α∪sees␈α∪how␈α∪desirable␈α∪this␈α∪is.␈α∪This␈α∪BEING␈α∩is
␈↓ α,␈↓also never needed to write CF.

␈↓ α,␈↓␈↓βMAKE␈α∃ENCODABLE␈↓.␈α∃If␈α∀all␈α∃else␈α∃fails,␈α∀this␈α∃BEING␈α∃tries␈α∃replacing␈α∀a
␈↓ α,␈↓function␈α∩by␈α∪one␈α∩of␈α∪its␈α∩alternatives␈α∪or,␈α∩as␈α∪a␈α∩last␈α∪resort,␈α∩by␈α∪one␈α∩of
␈↓ α,␈↓its generalizations.  This last resort is never needed to write CF.

␈↓ α,␈↓␈↓βENCODE␈↓.␈α⊗Despite␈α⊗its␈α⊗key␈α↔name,␈α⊗this␈α⊗BEING␈α⊗is␈α⊗mostly␈α↔a␈α⊗bookkeeper!
␈↓ α,␈↓It␈α∪runs␈α∪around␈α∪the␈α∀assert␈α∪lists,␈α∪gathering␈α∪up␈α∪enough␈α∀information␈α∪to
␈↓ α,␈↓encode␈α∀a␈α∃specified␈α∀little␈α∀piece␈α∃of␈α∀code.␈α∀A␈α∃program␈α∀schema␈α∃is␈α∀built
␈↓ α,␈↓up,␈α⊗instantiated␈α⊗as␈α⊗much␈α⊗as␈α∃possible,␈α⊗printed␈α⊗out␈α⊗for␈α⊗the␈α⊗user␈α∃to


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α)page A2.8␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓refer␈α≠to,␈α≠and␈α~passed␈α≠to␈α≠a␈α~highly␈α≠optimized␈α≠recursive␈α~auxilliary
␈↓ α,␈↓function,␈α.GETCODE.␈α. Some␈α-worrying␈α.about␈α.the␈α.arguments␈α-is
␈↓ α,␈↓done,including␈α⊂what␈α⊂they␈α⊂might␈α⊂be␈α⊂instantiated␈α⊂as.␈α⊂We␈α⊂inform␈α⊂the␈α⊂user
␈↓ α,␈↓of␈α⊃the␈α∩code␈α⊃BEING␈α∩written,␈α⊃and␈α∩a␈α⊃prerequisite␈α∩causes␈α⊃the␈α∩function␈α⊃to
␈↓ α,␈↓become made into a BEING.

␈↓ α,␈↓␈↓βSTUDY␈α∩TYPE␈↓.␈α∩This␈α∩BEING␈α∩accepts␈α∩a␈α∩BEING␈α∩call,␈α∩looks␈α∩at␈α∩that␈α⊃BEING's
␈↓ α,␈↓SPECIALIZATIONS␈α~part,␈α~translates␈α~each␈α~entry␈α~into␈α~a␈α~decision,␈α~and
␈↓ α,␈↓dumps␈α≠these␈α≠onto␈α~the␈α≠undeferred␈α≠decision␈α~list.␈α≠A␈α≠deferral␈α~demon
␈↓ α,␈↓promptly attends to them.

␈↓ α,␈↓␈↓βGET␈α⊗DATA␈α⊗STRUCTURE␈↓.␈α⊗ We␈α∃call␈α⊗select-structure␈α⊗type,␈α⊗and␈α⊗use␈α∃its
␈↓ α,␈↓advice␈α∪to␈α∪point␈α∩to␈α∪the␈α∪proper␈α∩knowledge␈α∪variable.␈α∪We␈α∩eval␈α∪it␈α∪to␈α∩set
␈↓ α,␈↓up␈α⊃the␈α∩various␈α⊃parts␈α⊃of␈α∩the␈α⊃data␈α⊃structure.␈α∩In␈α⊃unclear␈α⊃cases,␈α∩we␈α⊃may
␈↓ α,␈↓ask␈α⊗the␈α⊗user␈α⊗whether␈α⊗the␈α∃argument␈α⊗really␈α⊗is␈α⊗a␈α⊗data␈α⊗structure.␈α∃ We
␈↓ α,␈↓ensure␈α⊃that␈α⊃this␈α⊃object␈α⊃is␈α⊃a␈α∩BEING␈α⊃(else␈α⊃we␈α⊃make␈α⊃it␈α⊃one,)␈α⊃and␈α∩we␈α⊃add
␈↓ α,␈↓warnings␈α↔to␈α↔the␈α_effect␈α↔that␈α↔there␈α↔might␈α_not␈α↔be␈α↔any␈α_insertions␈α↔or
␈↓ α,␈↓deletions;␈α∃we'll␈α∃worry␈α∃about␈α∃that␈α∀much␈α∃later,␈α∃by␈α∃another␈α∃BEING.␈α∀We
␈↓ α,␈↓know␈α⊗that␈α↔the␈α⊗elements␈α↔of␈α⊗a␈α⊗data␈α↔structure␈α⊗are␈α↔themselves␈α⊗usually
␈↓ α,␈↓data␈α∀structures,␈α∃so␈α∀one␈α∀the␈α∃prerequisites␈α∀says␈α∀that␈α∃we␈α∀must␈α∃try␈α∀to
␈↓ α,␈↓make the arguments into data structures as well.

␈↓ α,␈↓␈↓βGETCODE␈↓.␈α∩This␈α⊃is␈α∩a␈α⊃long,␈α∩special-case,␈α⊃recursive␈α∩function.␈α∩ It␈α⊃goes
␈↓ α,␈↓through␈α≠a␈α≠piece␈α≠of␈α≠code␈α≠with␈α≠two␈α≠jobs:␈α≠to␈α≠build␈α≠up␈α≠a␈α≤list␈α≠of
␈↓ α,␈↓arguments␈α∪to␈α∪this␈α∪function,␈α∀and␈α∪to␈α∪get␈α∪names␈α∪for␈α∀specific␈α∪instances
␈↓ α,␈↓of␈α∪general␈α∪BEINGs.␈α∩ Part␈α∪of␈α∪the␈α∩kludgy␈α∪character␈α∪is␈α∩due␈α∪to␈α∪the␈α∩fact
␈↓ α,␈↓that␈α∃there␈α⊗are␈α∃non-BEINGs␈α∃in␈α⊗the␈α∃code:␈α∃primitive␈α⊗forms␈α∃(structure,
␈↓ α,␈↓tuple,␈α→vector,␈α→class,␈α→comment,␈α→atoms),␈α→primitive␈α~functions␈α→(read,
␈↓ α,␈↓null,␈α∃and,␈α∃...),␈α∃primitive␈α∃variables␈α∀(T,␈α∃NIL,␈α∃4,␈α∃...).␈α∃ By␈α∀keeping
␈↓ α,␈↓closely␈α≡to␈α≡the␈α≡theoretical␈α∨ideals␈α≡implicit␈α≡in␈α≡the␈α∨ideas,␈α≡this
␈↓ α,␈↓function would probably become trivial.

␈↓ α,␈↓␈↓βGET␈α∃NAME␈↓.␈α∃First␈α∃we␈α∃study␈α∃plausible␈α∃names␈α∃for␈α∃the␈α∃new␈α∃specialized
␈↓ α,␈↓BEING.␈α∃ We␈α⊗make␈α∃the␈α∃user␈α⊗aware␈α∃of␈α∃them.␈α⊗We␈α∃examine␈α∃the␈α⊗BEING␈α∃name
␈↓ α,␈↓carefully,␈α⊃to␈α⊃see␈α⊃if␈α∩it␈α⊃was␈α⊃just␈α⊃mentioned␈α∩in␈α⊃the␈α⊃same␈α⊃piece␈α∩of␈α⊃code
␈↓ α,␈↓(probably␈α∪then␈α∪the␈α∪same␈α∀name),␈α∪whether␈α∪it's␈α∪ever␈α∪been␈α∀mentioned␈α∪and
␈↓ α,␈↓specialized,␈α⊂and␈α⊂so␈α⊂on.␈α⊂Sometimes␈α⊂we␈α⊂end␈α⊂up␈α⊂deciding␈α⊂not␈α⊂to␈α⊂get␈α⊂a␈α⊂new
␈↓ α,␈↓name,␈α↔sometimes␈α↔we␈α_pick␈α↔one␈α↔and␈α↔just␈α_tell␈α↔the␈α↔user,␈α_sometimes␈α↔we
␈↓ α,␈↓recommend␈α⊃some␈α∩old␈α⊃specialized␈α∩name.␈α⊃In␈α∩90%␈α⊃of␈α∩the␈α⊃cases,␈α∩though,␈α⊃we
␈↓ α,␈↓simply␈α⊂say␈α⊂"give␈α⊂me␈α⊂a␈α⊂name␈α⊂for␈α⊂...".␈α⊂A␈α⊂new-name␈α⊂counter␈α⊂is␈α⊂maintained
␈↓ α,␈↓to␈α∪ensure␈α∪unique␈α∩names,␈α∪and␈α∪this␈α∩number␈α∪is␈α∪appended␈α∩onto␈α∪the␈α∪end␈α∩of
␈↓ α,␈↓what␈α∩the␈α⊃user␈α∩types,␈α∩unless␈α⊃it's␈α∩an␈α⊃already-existing␈α∩BEING␈α∩name.␈α⊃The
␈↓ α,␈↓user␈α⊂my␈α⊂type␈α⊂]␈α⊂(and␈α⊂usually␈α⊂does),␈α⊂indicating␈α⊂that␈α⊂PUP6␈α⊂is␈α⊂to␈α⊂choose.
␈↓ α,␈↓PUP6 always informs the user what the name is at the end.

␈↓ α,␈↓␈↓βMAKE␈α_NEW␈α→BEING␈↓.␈α_ This␈α_BEING␈α→has␈α_the␈α_awesome␈α→responsibility␈α_of
␈↓ α,␈↓giving␈α⊂life␈α⊂to␈α⊂new␈α⊂BEINGs.␈α⊂As␈α⊂is␈α⊂the␈α⊂case␈α⊂with␈α⊂neurons,␈α⊂soldiers,␈α⊂and


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α)page A2.9␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓all␈α⊃(good)␈α⊃BEINGs,␈α⊃no␈α∩one␈α⊃BEING␈α⊃really␈α⊃does␈α∩much␈α⊃when␈α⊃you␈α⊃look␈α∩at␈α⊃it
␈↓ α,␈↓in␈α∪isolation.␈α∪Thus␈α∩this␈α∪one␈α∪already␈α∩gets␈α∪the␈α∪name␈α∩of␈α∪the␈α∪BEING,␈α∩the
␈↓ α,␈↓name␈α≤of␈α≥its␈α≤parent␈α≥(its␈α≤least␈α≥general␈α≤generalization),␈α≥how␈α≤the
␈↓ α,␈↓metacodes␈α⊂of␈α⊂these␈α⊂two␈α⊂differ,␈α⊂the␈α⊂argument␈α⊂list,␈α⊂the␈α⊂reason␈α⊂for␈α⊂this
␈↓ α,␈↓specialized␈α→BEING␈α→to␈α→exist,␈α→what␈α→extra␈α→qualities␈α→it␈α→possesses␈α_or
␈↓ α,␈↓lacks␈α_wrt␈α_its␈α_parent,␈α_etc.␈α_ It␈α_can␈α_figure␈α_out␈α_who␈α_it␈α_affects␈α_by
␈↓ α,␈↓examing␈α⊂its␈α⊂various␈α⊂parts,␈α⊂and␈α⊂it␈α⊂bases␈α⊂the␈α⊂complexity␈α⊂vector␈α⊂on␈α⊂that
␈↓ α,␈↓of␈α⊂the␈α⊂parent␈α⊂and␈α⊂on␈α⊂the␈α⊂changes␈α⊂in␈α⊂this␈α⊂new␈α⊂BEING.␈α⊂Thus␈α⊂it␈α⊂basically
␈↓ α,␈↓does␈α⊗gets,␈α↔evals,␈α⊗and␈α↔puts.␈α⊗ It␈α⊗updates␈α↔various␈α⊗assert␈α↔lists,␈α⊗and
␈↓ α,␈↓semi-␈α↔compiles␈α↔the␈α_new␈α↔BEING.␈α↔One␈α↔bit␈α_of␈α↔knowledge␈α↔says␈α_that␈α↔the
␈↓ α,␈↓explicit␈α∩args␈α⊃check␈α∩may␈α∩be␈α⊃significantly␈α∩different,␈α⊃and␈α∩the␈α∩user␈α⊃may
␈↓ α,␈↓be queried.

␈↓ α,␈↓␈↓∧E.  Low-level problem-independent knowledge: bits of programs␈↓

␈↓ α,␈↓␈↓βPROPOSE␈α⊗PLAUSIBLE␈α⊗NAMES␈↓.␈α⊗ This␈α⊗BEING␈α⊗is␈α⊗called␈α⊗by␈α↔GetName,␈α⊗and
␈↓ α,␈↓should␈α∩incorporate␈α∩a␈α∩good␈α⊃model␈α∩of␈α∩user␈α∩psychology␈α∩of␈α⊃name-choosing.
␈↓ α,␈↓Currently,␈α⊂it␈α⊂applies␈α⊂Initials,␈α⊂Mainwords,␈α⊂Firstfew,␈α⊂and␈α⊂compositions
␈↓ α,␈↓of these, to the task description sentence.

␈↓ α,␈↓␈↓βSEMI␈α*COMPILE␈↓.␈α* Basically,␈α)BEINGs␈α*only␈α*lend␈α*themselves␈α)to
␈↓ α,␈↓interpreting;␈α_to␈α_help␈α_speed␈α_up␈α_this␈α_process,␈α_this␈α_BEING␈α_can␈α_take
␈↓ α,␈↓advantage␈α∩of␈α∩regularities␈α∩and␈α∩simplicities␈α∩in␈α∩another␈α∩BEING's␈α∩parts,
␈↓ α,␈↓and␈α∪turn␈α∪out␈α∩a␈α∪fast␈α∪function␈α∩to␈α∪do␈α∪an␈α∩equivalent␈α∪job.␈α∪ For␈α∩example,
␈↓ α,␈↓if␈α∪a␈α∪BEING␈α∩doesn't␈α∪enable␈α∪any␈α∩new␈α∪demons,␈α∪we␈α∩needn't␈α∪push␈α∪the␈α∩demon
␈↓ α,␈↓stack at the beginning and pop it at the end.

␈↓ α,␈↓␈↓βSELECT␈α STRUCTURE␈α!TYPE␈↓.␈α  This␈α is␈α!a␈α true␈α bit␈α!of␈α programming
␈↓ α,␈↓knowledge:␈α⊂if␈α⊂the␈α⊂structure␈α⊂is␈α⊂composed␈α⊂of␈α⊂several␈α⊂weakly-interacting
␈↓ α,␈↓pieces␈α⊂tied␈α⊂together␈α⊂through␈α⊂association␈α⊂with␈α⊂one␈α⊂atom,␈α⊂then␈α⊂the␈α⊂data
␈↓ α,␈↓structure␈α≠should␈α≠be␈α≠a␈α≤list␈α≠of␈α≠these␈α≠atoms,␈α≠with␈α≤the␈α≠associated
␈↓ α,␈↓structures␈α⊃BEING␈α∩stored␈α⊃on␈α∩the␈α⊃property␈α∩lists␈α⊃of␈α∩the␈α⊃atoms.␈α∩If␈α⊃there
␈↓ α,␈↓are␈α⊃only␈α∩a␈α⊃couple␈α⊃pieces,␈α∩or␈α⊃they␈α⊃interact␈α∩strongly,␈α⊃we␈α⊃should␈α∩use␈α⊃a
␈↓ α,␈↓nested list structure instead.

␈↓ α,␈↓␈↓βELEMENT␈↓.␈α∪All␈α∩we␈α∪know␈α∪about␈α∩an␈α∪element␈α∪is␈α∩that␈α∪it␈α∪is␈α∩a␈α∪member␈α∪of␈α∩a
␈↓ α,␈↓data␈α⊃structure,␈α⊃and␈α⊃that␈α∩we␈α⊃should␈α⊃not␈α⊃be␈α∩ashamed␈α⊃to␈α⊃ask␈α⊃the␈α∩user␈α⊃to
␈↓ α,␈↓clarify␈α∃himself␈α⊗if␈α∃he␈α∃mentions␈α⊗this.␈α∃The␈α∃ConceptFormation␈α⊗BEING␈α∃--
␈↓ α,␈↓not␈α≠the␈α≠ELEMENT␈α≠BEING␈α≤--␈α≠should␈α≠note␈α≠that␈α≠future␈α≤references␈α≠to
␈↓ α,␈↓ELEMENT␈α⊂actually␈α⊂refer␈α⊂to␈α⊂a␈α⊂scene,␈α⊂an␈α⊂instance␈α⊂of␈α⊂a␈α⊂concept,␈α⊂and␈α⊂that
␈↓ α,␈↓references␈α⊂to␈α⊂class␈α⊂refer␈α⊂to␈α⊂the␈α⊂model␈α⊂of␈α⊂a␈α⊂concept,␈α⊂a␈α⊂set␈α⊂of␈α⊂scenes.
␈↓ α,␈↓This may change as new data structures come into existence.

␈↓ α,␈↓␈↓βMODIFY␈α∀STRUCTURE␈↓.␈α∀Generally,␈α∀we␈α∀will␈α∀be␈α∀given␈α∀a␈α∃typical␈α∀element,
␈↓ α,␈↓and␈α⊂must␈α⊂identify␈α⊂the␈α⊂structures␈α⊂it␈α⊂belongs␈α⊂to,␈α⊂and␈α⊂modify␈α⊂them.␈α⊂ The
␈↓ α,␈↓precise␈α∀details␈α∀indicate␈α∀that␈α∀some␈α∀subset␈α∀of␈α∀CONDITIONAL␈α∀INSERTION,
␈↓ α,␈↓CONDITIONAL DELETION, and COMPLEX ALTERATION will be involved.


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.10␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓βGET␈α∪HOLD␈α∪OF␈↓␈α∪by␈α∪guessing␈α∀and␈α∪checking.␈α∪We␈α∪must␈α∪discover␈α∀whether␈α∪an
␈↓ α,␈↓algorithm␈α∪already␈α∪exists␈α∩which␈α∪can␈α∪get␈α∩arg1.␈α∪If␈α∪not,␈α∩we␈α∪try␈α∪to␈α∩find
␈↓ α,␈↓one␈α↔which␈α↔can␈α_get␈α↔arg1␈α↔and␈α↔some␈α_other␈α↔effects.␈α↔ We␈α_structure␈α↔the
␈↓ α,␈↓function␈α∩as␈α∩some␈α∩of␈α⊃COMPUTE,␈α∩GENERATE&TEST,␈α∩and␈α∩SEARCH.␈α∩ Finally,␈α⊃we
␈↓ α,␈↓must␈α≡decide␈α∨now␈α≡on␈α∨the␈α≡type␈α≡of␈α∨error␈α≡recovery␈α∨desired:␈α≡none,
␈↓ α,␈↓backtrack, or correct-and-try-to-proceed.

␈↓ α,␈↓␈↓βTAKE␈α⊃HOLD␈α⊃OF␈↓␈α⊃trivially.␈α⊃We␈α⊃examine␈α⊃the␈α⊃flow␈α⊃of␈α⊃control␈α∩through␈α⊃the
␈↓ α,␈↓preceding␈α∪code,␈α∪to␈α∩decide␈α∪whether␈α∪arg1␈α∩has␈α∪ever␈α∪been␈α∩SET.␈α∪If␈α∪so,␈α∩we
␈↓ α,␈↓must␈α∩ask␈α∩the␈α∩user␈α∩whether␈α∩or␈α∩not␈α∪to␈α∩read␈α∩in␈α∩a␈α∩new␈α∩value.␈α∩If␈α∪no␈α∩read
␈↓ α,␈↓is␈α∃to␈α⊗be␈α∃done,␈α∃then␈α⊗this␈α∃BEING␈α∃reduces␈α⊗to␈α∃a␈α∃simple␈α⊗assignment,␈α∃or
␈↓ α,␈↓perhaps␈α↔to␈α↔nothing␈α_at␈α↔all.␈α↔Otherwise,␈α↔we␈α_read␈α↔in␈α↔the␈α_object,␈α↔and
␈↓ α,␈↓assign its various subparts to SOME PART OF it.

␈↓ α,␈↓␈↓βIS␈α∃OF␈α⊗TYPE␈↓.␈α∃This␈α∃BEING␈α⊗is␈α∃a␈α∃predicate␈α⊗which␈α∃is␈α∃too␈α⊗low-level␈α∃and
␈↓ α,␈↓general␈α∪to␈α∪do␈α∪much.␈α∪Basically,␈α∪it␈α∪helps␈α∪formulate␈α∪a␈α∪question␈α∪to␈α∩the
␈↓ α,␈↓user,␈α↔who␈α↔must␈α_explain␈α↔to␈α↔PUP6␈α↔how␈α_to␈α↔construct␈α↔any␈α_predicate␈α↔it
␈↓ α,␈↓comes␈α∪across,␈α∪usually␈α∪just␈α∀by␈α∪translating␈α∪a␈α∪sentence␈α∪the␈α∀user␈α∪types
␈↓ α,␈↓in.

␈↓ α,␈↓␈↓βCOMPLEX␈α ALTERATION␈↓.␈α  This␈α BEING␈α is␈α always␈α replaced␈α by␈α∨some
␈↓ α,␈↓initializing␈α∀assignments,␈α∀followed␈α∀by␈α∀calls␈α∀on␈α∀MODIFY␈α∀STRUCTURE␈α∀for
␈↓ α,␈↓some␈α∨subparts␈α∨of␈α≡arg1.␈α∨ A␈α∨bit␈α≡of␈α∨advice␈α∨is␈α≡that␈α∨if␈α∨arg1␈α≡is
␈↓ α,␈↓unstructured,␈α⊃try␈α∩to␈α⊃get␈α∩it␈α⊃structured.␈α∩If␈α⊃this␈α∩fails,␈α⊃maybe␈α∩what␈α⊃is
␈↓ α,␈↓really wanted is to modify the structure of which arg1 is a member.

␈↓ α,␈↓␈↓βCONDITIONAL␈α~DELETION␈↓.␈α~As␈α~above,␈α~we␈α~look␈α~at␈α~the␈α≠structuring␈α~of
␈↓ α,␈↓various␈α⊗arguments␈α↔to␈α⊗decide␈α↔what␈α⊗is␈α⊗really␈α↔supposed␈α⊗to␈α↔be␈α⊗deleted
␈↓ α,␈↓from␈α∀where.␈α∃We␈α∀check␈α∀with␈α∃the␈α∀user,␈α∀remind␈α∃him␈α∀of␈α∃various␈α∀bindings
␈↓ α,␈↓relevant␈α⊃to␈α∩the␈α⊃current␈α⊃call,␈α∩and␈α⊃ask␈α⊃him␈α∩to␈α⊃describe␈α⊃(1)␈α∩under␈α⊃what
␈↓ α,␈↓conditions␈α⊃we␈α∩do␈α⊃the␈α∩deletion,␈α⊃(2)␈α∩what␈α⊃exactly␈α∩do␈α⊃we␈α∩delete.␈α⊃ These
␈↓ α,␈↓are␈α≡translated,␈α≡analyzed␈α≡in␈α∨the␈α≡context␈α≡of␈α≡deletion,␈α∨and␈α≡help
␈↓ α,␈↓determine the deletion piece of code.

␈↓ α,␈↓␈↓βCONDITIONAL␈α~INSERTION␈↓.␈α~This␈α~is␈α→similar␈α~to␈α~the␈α~preceding␈α→BEING.
␈↓ α,␈↓Here␈α∪we␈α∪also␈α∩worry␈α∪about␈α∪whether␈α∩the␈α∪entity␈α∪to␈α∩be␈α∪inserted␈α∪has␈α∩ever
␈↓ α,␈↓been␈α⊃bound.␈α⊃If␈α⊃not,␈α∩we␈α⊃must␈α⊃see␈α⊃that␈α∩it␈α⊃is!␈α⊃Often,␈α⊃this␈α∩binding␈α⊃will
␈↓ α,␈↓be␈α∪related␈α∪to␈α∪the␈α∪Initialize␈α∪piece␈α∪of␈α∪the␈α∪DataStructure␈α∪part␈α∪of␈α∩the
␈↓ α,␈↓BEING␈α⊗representing␈α⊗the␈α⊗structure␈α⊗we're␈α⊗inserting␈α⊗into.␈α⊗ Since␈α⊗some
␈↓ α,␈↓data␈α↔structures␈α↔have␈α↔several␈α↔similar␈α↔but␈α↔distinctly-named␈α⊗elements
␈↓ α,␈↓existing␈α∃simultaneously,␈α⊗we␈α∃have␈α∃lots␈α⊗of␈α∃little␈α∃worries.␈α⊗ After␈α∃we
␈↓ α,␈↓have␈α⊃planned␈α∩out␈α⊃the␈α⊃code,␈α∩we␈α⊃check␈α⊃with␈α∩the␈α⊃coding␈α⊃warning␈α∩list␈α⊃and
␈↓ α,␈↓add␈α⊂to␈α⊂it;␈α⊂e.g.,␈α⊂any␈α⊂undefined␈α⊂initial␈α⊂value␈α⊂of␈α⊂a␈α⊂variable␈α⊂in␈α⊂a␈α⊂piece
␈↓ α,␈↓of␈α↔code␈α↔we␈α⊗stuck␈α↔in␈α↔here,␈α⊗will␈α↔also␈α↔be␈α⊗uninitialized␈α↔here.␈α↔If␈α⊗we
␈↓ α,␈↓later␈α∪decide␈α∪never␈α∪to␈α∀worry␈α∪about␈α∪the␈α∪first␈α∪initialization,␈α∀we␈α∪must
␈↓ α,␈↓not forget this one! This is a frequent source of bugs, I think.

␈↓ α,␈↓␈↓βGENERATE&TEST␈↓ and ␈↓βCOMPUTE␈↓ are not needed or implemented.

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.11␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓βSEARCH␈↓.␈α≤ Currently,␈α≠a␈α≤primitive␈α≤type␈α≠of␈α≤searching␈α≤suffices.␈α≠We
␈↓ α,␈↓simply␈α⊂execute␈α⊂the␈α⊂iteration␈α⊂FOREACH␈α⊂X␈α⊂IN␈α⊂XSET␈α⊂DO␈α⊂(TEST␈α⊂X).␈α⊂ If␈α⊂we're
␈↓ α,␈↓unsure,␈α→we␈α~check␈α→that␈α→XSET␈α~has␈α→the␈α→form␈α~SET␈α→OF␈α→(PLURAL␈α~X).␈α→The
␈↓ α,␈↓specializations␈α_tell␈α_us␈α_to␈α_worry␈α_about␈α_termination␈α_conditions.␈α_ I
␈↓ α,␈↓suppose this BEING could also be used for generate-and-test.

␈↓ α,␈↓␈↓βFOREACH␈↓.␈α∀ Not␈α∀surprisingly,␈α∀this␈α∀is␈α∀the␈α∀iteration␈α∀BEING.␈α∀It␈α∀is␈α∪an
␈↓ α,␈↓NLAMBDA␈α⊂function,␈α⊂so␈α⊂its␈α⊂arguments␈α⊂aren't␈α⊂surrounded␈α⊂by␈α⊂quotes.␈α⊂There
␈↓ α,␈↓are␈α∀various␈α∪minor␈α∀decisions␈α∪to␈α∀make,␈α∪which␈α∀simplify␈α∀any␈α∪specialized
␈↓ α,␈↓version:␈α⊂there␈α⊂may␈α⊂or␈α⊂may␈α⊂not␈α⊂be␈α⊂an␈α⊂"until"␈α⊂condition;␈α⊂we␈α⊂must␈α⊂get␈α⊂it
␈↓ α,␈↓and␈α⊂also␈α⊂decide␈α⊂what␈α⊂to␈α⊂bind␈α⊂the␈α⊂iteration␈α⊂variable␈α⊂to␈α⊂and␈α⊂what␈α⊂value
␈↓ α,␈↓to␈α⊂return,␈α⊂both␈α⊂in␈α⊂case␈α⊂this␈α⊂condition␈α⊂is␈α⊂met,␈α⊂and␈α⊂in␈α⊂case␈α⊂we␈α⊂exhaust
␈↓ α,␈↓the␈α⊃space.␈α∩Often,␈α⊃we␈α∩will␈α⊃decide␈α∩to␈α⊃leave␈α∩some␈α⊃of␈α∩these␈α⊃unspecified,
␈↓ α,␈↓put␈α⊃notes␈α∩about␈α⊃them␈α⊃on␈α∩the␈α⊃coding␈α⊃warning␈α∩list,␈α⊃and␈α⊃not␈α∩worry␈α⊃about
␈↓ α,␈↓them for a long time.

␈↓ α,␈↓␈↓βTEST␈↓.␈α∨ This␈α∨BEING␈α is␈α∨a␈α∨predicate␈α which␈α∨is␈α∨oriented␈α toward␈α∨a
␈↓ α,␈↓threshold␈α→of␈α→acceptability,␈α→whereas␈α→IS_OF_TYPE␈α→is␈α~oriented␈α→toward
␈↓ α,␈↓separating␈α~cases.␈α→ It␈α~either␈α~has␈α→the␈α~flavor␈α→of␈α~comparing,␈α~or␈α→of
␈↓ α,␈↓competition.␈α→ We␈α→must␈α→also␈α→decide␈α→whether␈α→the␈α→result␈α→is␈α_nominal,
␈↓ α,␈↓ordinal,␈α∪or␈α∪of␈α∪ratio␈α∪caliber.␈α∪These␈α∪latter␈α∪two␈α∪never␈α∪crop␈α∪up,␈α∩which
␈↓ α,␈↓is why we assume the test is a predicate always.

␈↓ α,␈↓␈↓βSOME␈α⊗PART␈α⊗OF␈↓.␈α⊗We␈α↔either␈α⊗get␈α⊗this␈α⊗simple␈α⊗destructive␈α↔function␈α⊗by
␈↓ α,␈↓examples␈α~(like␈α~Shaw's␈α~program)␈α~or␈α~by␈α~translating␈α~a␈α~user-supplied
␈↓ α,␈↓English␈α)sentence␈α)describing␈α)what␈α)it␈α)does.␈α* Typically,␈α)some
␈↓ α,␈↓combinations␈α∩of␈α⊃CAR␈α∩and␈α∩CDR,␈α⊃occasionally␈α∩uses␈α⊃some␈α∩constants␈α∩(1,␈α⊃T,
␈↓ α,␈↓NIL) or constructive primitives (CONS, NCONC).

␈↓ α,␈↓␈↓βCOMPARE␈↓.␈α∨We␈α∨must␈α∨worry␈α≡about␈α∨whether␈α∨the␈α∨result␈α∨is␈α≡nominal,
␈↓ α,␈↓ordinal,␈α⊂or␈α⊂ratio.␈α⊂We␈α⊂also␈α⊂decide␈α⊂whether␈α⊂the␈α⊂comparison␈α⊂is␈α⊂a␈α⊂JOINING
␈↓ α,␈↓FUNCTION␈α⊂applied␈α⊂to␈α⊂its␈α⊂arguments,␈α⊂a␈α⊂constant␈α⊂function␈α⊂(executed␈α⊂only
␈↓ α,␈↓for␈α∀side␈α∃effects),␈α∀or␈α∀a␈α∃JOINING␈α∀FUNCTION␈α∀applied␈α∃to␈α∀the␈α∃results␈α∀of
␈↓ α,␈↓COMPAREing␈α⊂corresponding␈α⊂subparts␈α⊂of␈α⊂the␈α⊂arguments.␈α⊂This␈α⊂last␈α⊂case␈α⊂is
␈↓ α,␈↓both␈α⊗frequent␈α⊗and␈α⊗complicated.␈α⊗ If␈α⊗neither␈α⊗argument␈α⊗is␈α⊗structured,
␈↓ α,␈↓this␈α∀is␈α∪impossible.␈α∀If␈α∪both␈α∀are␈α∪highly␈α∀structured,␈α∀their␈α∪structures
␈↓ α,␈↓must␈α∩have␈α⊃a␈α∩nontrivial␈α∩amount␈α⊃of␈α∩correspondence␈α⊃in␈α∩order␈α∩to␈α⊃succeed.
␈↓ α,␈↓If␈α∃only␈α∃one␈α∃argument␈α∃is␈α∀structured,␈α∃this␈α∃strongly␈α∃suggest␈α∃that␈α∀the
␈↓ α,␈↓other␈α_one␈α_should␈α_be␈α_similarly␈α_structured.␈α_ Often␈α_we␈α_go␈α_ahead␈α_and
␈↓ α,␈↓structure it without asking the user (inference by analogy.)

␈↓ α,␈↓␈↓βBETTER␈↓.␈α∩We've␈α⊃discussed␈α∩this␈α∩earlier.␈α⊃Here␈α∩we␈α⊃should␈α∩note␈α∩that␈α⊃when
␈↓ α,␈↓called␈α⊗on␈α↔to␈α⊗write␈α↔a␈α⊗new,␈α⊗specialized␈α↔BETTER␈α⊗function,␈α↔it␈α⊗chooses
␈↓ α,␈↓either␈α∪a␈α∪simple␈α∪function␈α∀(T,␈α∪NIL)␈α∪to␈α∪allow␈α∪an␈α∀optimization␈α∪(replace
␈↓ α,␈↓by␈α≠CONS,␈α≠replace␈α≠by␈α≤NCONC1),␈α≠or␈α≠it␈α≠chooses␈α≠a␈α≤complex␈α≠comparing
␈↓ α,␈↓function (e.g., alphorder, write-program itself!).



␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.12␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓βJOINING␈α~FUNCTION␈↓.␈α~This␈α~is␈α~a␈α~way␈α~of␈α~condensing␈α~results.␈α~ It␈α→is
␈↓ α,␈↓typically␈α∩a␈α⊃known␈α∩function,␈α∩such␈α⊃as␈α∩AND,␈α⊃OR,␈α∩PLUS,␈α∩MAXIMUM,␈α⊃PROGN...
␈↓ α,␈↓which␈α∃is␈α∃determined␈α∃by␈α∃(i)␈α∀the␈α∃character␈α∃of␈α∃the␈α∃result␈α∀(numerical,
␈↓ α,␈↓T/F)␈α⊗and␈α⊗(ii)␈α⊗whether␈α⊗we␈α⊗are␈α↔in␈α⊗a␈α⊗DO␈α⊗UNTIL␈α⊗loop,␈α⊗a␈α↔DO␈α⊗REPEATEDLY
␈↓ α,␈↓loop, or neither of these loops.

␈↓ α,␈↓␈↓∧F. Programming Knowledge stored in variables␈↓

␈↓ α,␈↓To␈α(resolve␈α(an␈α(ADAPTATION␈α(decision:␈α(Ask␈α(for␈α(sample␈α(dialog,
␈↓ α,␈↓symbolically run current code, modifying I/O formats.

␈↓ α,␈↓To␈α∪defer␈α∪any␈α∪decision␈α∪whose␈α∪AFFECTS␈α∪part␈α∪is␈α∪known:␈α∪It␈α∪may␈α∩translate
␈↓ α,␈↓as␈α⊂some␈α⊂detail␈α⊂of␈α⊂x;␈α⊂in␈α⊂that␈α⊂case,␈α⊂wait␈α⊂until␈α⊂some␈α⊂code␈α⊂for␈α⊂x␈α⊂already
␈↓ α,␈↓exists.␈α∀The␈α∃affects␈α∀part␈α∀may␈α∃translate␈α∀as␈α∀The␈α∃x␈α∀algorithm;␈α∃in␈α∀this
␈↓ α,␈↓case we worry as soon as PUP6 begins DO-ing any coding at all of x.

␈↓ α,␈↓To␈α∃defer␈α∃an␈α∃ALTERNATIVES␈α∃decision:␈α∀Examine␈α∃the␈α∃coding␈α∃tasks␈α∃in␈α∀all
␈↓ α,␈↓cases,␈α∪and␈α∪try␈α∩to␈α∪find␈α∪some␈α∩common␈α∪head␈α∪and/or␈α∩some␈α∪common␈α∪tail.␈α∩If
␈↓ α,␈↓there␈α⊃is␈α∩any,␈α⊃try␈α⊃to␈α∩defer␈α⊃the␈α⊃decision␈α∩until␈α⊃after␈α⊃writing␈α∩code␈α⊃for
␈↓ α,␈↓this␈α∩common␈α∩subtask␈α∩sequence.␈α⊃If␈α∩one␈α∩alternative␈α∩exactly␈α∩matches␈α⊃the
␈↓ α,␈↓common␈α⊂sequence,␈α⊂we␈α⊂can␈α⊂temporarily␈α⊂assert␈α⊂that␈α⊂the␈α⊂decision␈α⊂has␈α⊂been
␈↓ α,␈↓made to do this simplest BEING.

␈↓ α,␈↓To␈α∪terminate␈α∪an␈α∪AND␈α∀loop:␈α∪The␈α∪conjunction␈α∪is␈α∪usually␈α∀between␈α∪highly
␈↓ α,␈↓similar objects. Related to how to parse a sentence containing ANDs.

␈↓ α,␈↓To␈α⊂resolve␈α⊂a␈α⊂BOOLEAN␈α⊂decision:␈α⊂Ask␈α⊂the␈α⊂user␈α⊂to␈α⊂respond␈α⊂Yes␈α⊂or␈α⊂No.␈α⊂The
␈↓ α,␈↓decision␈α∀has␈α∀special␈α∀Yes,␈α∀No,␈α∀and␈α∀Both␈α∀parts;␈α∀in␈α∀each␈α∀case,␈α∀two␈α∀of
␈↓ α,␈↓them will be evalled.

␈↓ α,␈↓To␈α⊂resolve␈α⊂a␈α⊂DEFINITION␈α⊂decision:␈α⊂Locate␈α⊂the␈α⊂defined␈α⊂object,␈α⊂reaffirm
␈↓ α,␈↓that␈α⊃it␈α⊃is␈α⊃undefined,␈α∩ask␈α⊃the␈α⊃user␈α⊃to␈α∩define␈α⊃it,␈α⊃check␈α⊃whether␈α∩it␈α⊃is
␈↓ α,␈↓a␈α~predicate,␈α→data␈α~structure,␈α~etc.,␈α→and␈α~tell␈α→the␈α~user␈α~about␈α→such
␈↓ α,␈↓constraints.

␈↓ α,␈↓To␈α⊂resolve␈α⊂a␈α⊂DICHOTOMY␈α⊂decision:␈α⊂Each␈α⊂such␈α⊂decision␈α⊂contains␈α⊂a␈α⊂little
␈↓ α,␈↓program␈α⊂which␈α⊂now␈α⊂is␈α⊂evaluated.␈α⊂If␈α⊂it␈α⊂succeeds,␈α⊂its␈α⊂value␈α⊂answers␈α⊂the
␈↓ α,␈↓decision;␈α⊃if␈α∩it␈α⊃fails,␈α⊃we␈α∩have␈α⊃to␈α⊃ask␈α∩the␈α⊃user␈α⊃to␈α∩choose␈α⊃alternative
␈↓ α,␈↓1␈α∩or␈α∩2.␈α∪The␈α∩choice␈α∩points␈α∪to␈α∩a␈α∩little␈α∩program␈α∪to␈α∩run,␈α∩and␈α∪its␈α∩value
␈↓ α,␈↓is the desired resolution.

␈↓ α,␈↓To␈α⊗resolve␈α↔a␈α⊗PREDICATE␈α↔decision:␈α⊗Fix␈α⊗the␈α↔context␈α⊗of␈α↔the␈α⊗predicate
␈↓ α,␈↓call,␈α⊃try␈α∩to␈α⊃relate␈α⊃this␈α∩predicate␈α⊃to␈α⊃some␈α∩known␈α⊃tests,␈α⊃and,␈α∩if␈α⊃this
␈↓ α,␈↓fails,␈α~ask␈α→the␈α~user.␈α~His␈α→response␈α~is␈α→specially␈α~processed␈α~in␈α→the
␈↓ α,␈↓context of a predicate fixation.

␈↓ α,␈↓To␈α set␈α up␈α a␈α data␈α structure␈α stored␈α as␈α a␈α LIST␈α STRUCTURE:␈α The


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.13␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓initialization␈α⊂is␈α⊂a␈α⊂simple␈α⊂SETQ␈α⊂to␈α⊂an␈α⊂as-yet-undefined␈α⊂value.␈α⊂ Access
␈↓ α,␈↓is␈α⊃simply␈α∩by␈α⊃mentioning␈α∩the␈α⊃name.␈α∩Insertion␈α⊃is␈α∩by␈α⊃Merge:in␈α∩or␈α⊃Merge.
␈↓ α,␈↓Deletion is by Pullout or Setdifference.

␈↓ α,␈↓To␈α→set␈α→up␈α_a␈α→data␈α→structure␈α→stored␈α_as␈α→a␈α→PROPERTY␈α→LIST␈α_STRUCTURE:
␈↓ α,␈↓Delineate␈α⊃the␈α∩pieces␈α⊃to␈α∩be␈α⊃associated␈α∩with␈α⊃each␈α∩atom,␈α⊃and␈α∩name␈α⊃them.
␈↓ α,␈↓Accession␈α⊃is␈α∩via␈α⊃GETP.␈α⊃Insertion␈α∩s␈α⊃via␈α⊃a␈α∩GETP,␈α⊃then␈α⊃a␈α∩MERGE:IN,␈α⊃then
␈↓ α,␈↓a␈α∨PUT.␈α∨Deletion␈α≡is␈α∨via␈α∨a␈α≡GETP,␈α∨then␈α∨a␈α≡PULLOUT,␈α∨then␈α∨a␈α≡PUT.
␈↓ α,␈↓Initialization␈α⊂is␈α⊂a␈α⊂PUT␈α⊂of␈α⊂a␈α⊂SETQ␈α⊂to␈α⊂an␈α⊂as-yet␈α⊂undefined␈α⊂value.␈α⊂ Each
␈↓ α,␈↓named␈α∀substructure␈α∪must␈α∀itself␈α∪become␈α∀a␈α∪data␈α∀structure,␈α∀typically␈α∪a
␈↓ α,␈↓simple list structure.

␈↓ α,␈↓To␈α∩resolve␈α⊃a␈α∩SOMEOF␈α∩decision:␈α⊃The␈α∩user␈α⊃must␈α∩be␈α∩sufficiently␈α⊃informed
␈↓ α,␈↓about␈α⊃the␈α∩choices.␈α⊃He␈α∩types␈α⊃back␈α∩a␈α⊃non-null,␈α∩ordered␈α⊃subset␈α∩of␈α⊃those
␈↓ α,␈↓choices.␈α⊂We␈α⊂examine␈α⊂them␈α⊂to␈α⊂see␈α⊂if␈α⊂they␈α⊂should␈α⊂be␈α⊂enclosed␈α⊂in␈α⊂a␈α⊂PROGN
␈↓ α,␈↓or␈α~in␈α~a␈α~REPEATEDLY,␈α~and␈α≠whether␈α~we␈α~would␈α~like␈α~to␈α≠see␈α~something
␈↓ α,␈↓structured in a certain way.

␈↓ α,␈↓To␈α≠resolve␈α≠a␈α≠SUBSETOF␈α≤decision:␈α≠Similar␈α≠to␈α≠above,␈α≠but␈α≤no␈α≠fancy
␈↓ α,␈↓investigation, just string the choices together in a PROGN.

␈↓ α,␈↓To␈α~defer␈α→any␈α~decision␈α~whose␈α→WHEN␈α~part␈α→is␈α~provided:␈α~We␈α→transform
␈↓ α,␈↓"before␈α∃deciding␈α∃firmly␈α∃how␈α∃to␈α∀←x␈α∃←←y"␈α∃into␈α∃something␈α∃like␈α∀"member
␈↓ α,␈↓(cons␈α∩detail-of-$x-ing␈α∩$y)␈α∪doing-pup-list".␈α∩We␈α∩also␈α∪translate␈α∩Before
␈↓ α,␈↓any␈α∪←←x␈α∪routine␈α∪is␈α∀finalized,␈α∪After␈α∪←←x␈α∪routines␈α∪are␈α∀finalized,␈α∪and
␈↓ α,␈↓similar phrases. These must always evaluate T or NIL.

␈↓ α,␈↓␈↓∧G. Demons and functions of interest␈↓

␈↓ α,␈↓LIST:JOIN,␈α→MERGE:IN,␈α→PULLOUT.␈α→These␈α→rather␈α→standard␈α~functions␈α→are
␈↓ α,␈↓given␈α⊂a␈α⊂tiny␈α⊂bit␈α⊂of␈α⊂advice:␈α⊂if␈α⊂their␈α⊂"element"␈α⊂is␈α⊂more␈α⊂like␈α⊂a␈α⊂sublist
␈↓ α,␈↓than␈α⊂an␈α⊂element␈α⊂of␈α⊂their␈α⊂"list",␈α⊂then␈α⊂they␈α⊂assume␈α⊂that␈α⊂what␈α⊂was␈α⊂meant
␈↓ α,␈↓was append or setdifference, not cons or merge or remove.

␈↓ α,␈↓LONG␈α⊂NAME␈α⊂DEMON.␈α⊂If␈α⊂any␈α⊂name␈α⊂becomes␈α⊂unwieldy,␈α⊂he␈α⊂notices␈α⊂it␈α⊂and␈α⊂asks
␈↓ α,␈↓the user for a nickname.

␈↓ α,␈↓PERMIT␈α≡DETAILED␈α≡DECISION.␈α≡ Implicit␈α≡near␈α≡the␈α≡beginning␈α≡of␈α≡each
␈↓ α,␈↓decision,␈α⊗PUP6␈α⊗called␈α⊗this␈α⊗function.␈α∃It␈α⊗asks␈α⊗the␈α⊗user␈α⊗if␈α⊗he␈α∃wants
␈↓ α,␈↓more details, and if so it gets them and prints them out.

␈↓ α,␈↓STRUCTURE␈α∪INDUCING␈α∪DEMON.␈α∪If␈α∀the␈α∪object␈α∪is␈α∪a␈α∪BEING␈α∀already,␈α∪special
␈↓ α,␈↓considerations␈α_apply.␈α_ If␈α_the␈α_object␈α_and␈α_all␈α_arg␈α_values␈α_are␈α_ill-
␈↓ α,␈↓defined,␈α we␈α decide␈α not␈α to␈α do␈α any␈α structuring.␈α  Otherwise,␈α we
␈↓ α,␈↓investigate␈α↔the␈α↔effects␈α↔of␈α↔structuring␈α↔the␈α↔object␈α↔into␈α_the␈α↔pieces
␈↓ α,␈↓specified␈α→in␈α~the␈α→args.␈α→If␈α~there␈α→is␈α→no␈α~problem,␈α→and␈α→if␈α~the␈α→user
␈↓ α,␈↓consents,␈α∃we␈α⊗tack␈α∃the␈α∃appropriate␈α⊗Replace␈α∃messages␈α∃onto␈α⊗the␈α∃coding
␈↓ α,␈↓warning list (with a high priority). We activate Long Name Demon.

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.14␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓∧Natural␈α%Language␈α%Translation␈↓.␈α$ We␈α%have␈α%already␈α%discussed␈α$the
␈↓ α,␈↓TRANSLATE␈α⊂BEING␈α⊂and␈α⊂the␈α⊂basic␈α⊂way␈α⊂of␈α⊂handling␈α⊂natural␈α⊂language␈α⊂input.
␈↓ α,␈↓Several␈α≠BEINGs␈α≤exist␈α≠primarily␈α≤for␈α≠this␈α≤purpose;␈α≠RECOGNIZE:ARGS,
␈↓ α,␈↓RECOGNIZE:C*R,␈α?␈α→RECOGNIZE:CONDITIONAL,␈α?␈α→RECOGNIZE:CONJUNCTION,
␈↓ α,␈↓RECOGNIZE:EQUALITY,␈α_RECOGNIZE:FUNCTION:RETURNS,␈α_RECOGNIZE:INCLUSION,
␈↓ α,␈↓RECOGNIZE:LITERALS,␈α?␈α	RECOGNIZE:NUMBER,␈α?␈α	RECOGNIZE:SET:RELATIONS,
␈↓ α,␈↓RECOGNIZE:SOME:MEMBER,␈α⊂ADD:DEFINITION,␈α⊂ADJECTIVE:HANDLER,␈α⊂REPEATEDLY.
␈↓ α,␈↓Also,␈α≤there␈α≤are␈α≤several␈α≤functions␈α≤related␈α≤to␈α≤translation:␈α≤e.g.,
␈↓ α,␈↓UNGERUNDIFY,␈α↔PLURAL,␈α↔OPPOSITE.␈α↔All␈α↔these␈α↔are␈α↔straight-forward,␈α⊗and
␈↓ α,␈↓their task is obvious from their name.

␈↓ α,␈↓␈↓∧(ii) The increment of knowledge necessary to write GI␈↓

␈↓ α,␈↓␈↓βAPPLY␈α≥RULE␈↓.␈α≥ This␈α≥BEING␈α≥accepts␈α≥two␈α≥arguments,␈α≥which␈α≥must␈α≤be
␈↓ α,␈↓interpretable␈α∃as␈α∃a␈α∃string␈α∃and␈α∀a␈α∃rule,␈α∃respectively.␈α∃ The␈α∃string␈α∀is
␈↓ α,␈↓compared␈α∀against␈α∃the␈α∀left␈α∀side␈α∃of␈α∀the␈α∀rule␈α∃and,␈α∀if␈α∃applicable,␈α∀the
␈↓ α,␈↓change␈α⊃indicated␈α∩by␈α⊃the␈α⊃right␈α∩side␈α⊃is␈α⊃executed␈α∩on␈α⊃the␈α⊃string.␈α∩ It␈α⊃is
␈↓ α,␈↓immediately␈α⊂encodable␈α⊂if␈α⊂the␈α⊂user␈α⊂wishes␈α⊂all␈α⊂possible␈α⊂applications␈α⊂of
␈↓ α,␈↓the␈α→rule␈α→to␈α_the␈α→string;␈α→else␈α→a␈α_more␈α→specialized␈α→version␈α→must␈α_be
␈↓ α,␈↓synthesized.

␈↓ α,␈↓␈↓βCONSTRAIN␈↓.␈α∀ Try␈α∀first␈α∀to␈α∀decide␈α∀if␈α∀it␈α∀is␈α∀meaningful␈α∀for␈α∃the␈α∀given
␈↓ α,␈↓structure␈α∪to␈α∪be␈α∪constrained,␈α∪and,␈α∪if␈α∪so,␈α∪how.␈α∪ Next␈α∪see␈α∪whether␈α∩any
␈↓ α,␈↓other␈α≡BEINGs␈α∨can␈α≡help.␈α∨ Finally,␈α≡ask␈α≡the␈α∨user␈α≡to␈α∨specify␈α≡any
␈↓ α,␈↓constraints␈α⊃he␈α∩can␈α⊃think␈α∩of.␈α⊃ For␈α∩example,␈α⊃can␈α∩a␈α⊃list␈α∩structure␈α⊃grow
␈↓ α,␈↓indefinitely,␈α∩or␈α⊃can␈α∩we␈α∩use␈α⊃some␈α∩fancy␈α⊃programming␈α∩trick␈α∩because␈α⊃the
␈↓ α,␈↓size stays small?

␈↓ α,␈↓␈↓βGRAMMATICAL␈α⊗INFERENCE␈↓.␈α⊗ Needless␈α⊗to␈α⊗say,␈α⊗this␈α⊗is␈α↔a␈α⊗high-level,
␈↓ α,␈↓domain-specific␈α⊂BEING!␈α⊂It␈α⊂must␈α⊂infer␈α⊂grammars␈α⊂from␈α⊂exemplary␈α⊂strings;
␈↓ α,␈↓it␈α∪knows␈α∪this␈α∩to␈α∪be␈α∪the␈α∩only␈α∪reasonable␈α∪g.i.␈α∩paradigm.␈α∪If␈α∪it␈α∩fails,
␈↓ α,␈↓some␈α_genralizations␈α_are␈α_inductive␈α_inference,␈α_enumeration,␈α_problem-
␈↓ α,␈↓solving;␈α some␈α alternatives␈α are␈α concept␈α formation␈α and␈α simulated
␈↓ α,␈↓evolution.␈α∃ There␈α⊗are␈α∃many␈α∃minor␈α⊗decisions,␈α∃similar␈α∃to␈α⊗the␈α∃concept
␈↓ α,␈↓formation␈α≤decisions␈α≤(e.g.,␈α≤examine␈α≤a␈α≤sample␈α≤GI-user␈α≤dialogue␈α≤to
␈↓ α,␈↓finalize␈α⊗the␈α⊗printing␈α⊗formats).␈α⊗The␈α⊗major␈α⊗decision␈α⊗is␈α⊗dichotomous:
␈↓ α,␈↓whether␈α∩our␈α⊃new␈α∩specialized␈α∩BEING␈α⊃should␈α∩retain␈α⊃the␈α∩ability␈α∩to␈α⊃input
␈↓ α,␈↓the␈α⊗type␈α↔of␈α⊗grammar␈α↔and␈α⊗vary␈α⊗its␈α↔strategy␈α⊗accordingly,␈α↔or␈α⊗whether
␈↓ α,␈↓only␈α∃one␈α∃fixed␈α∃type␈α∃of␈α∀grammar␈α∃(e.g.,␈α∃context-free)␈α∃will␈α∃always␈α∀be
␈↓ α,␈↓used,␈α⊃and␈α⊃may␈α⊃be␈α∩"built␈α⊃in"␈α⊃to␈α⊃the␈α∩code.␈α⊃The␈α⊃result␈α⊃of␈α∩this␈α⊃decision
␈↓ α,␈↓is to pass control to one or the other of the following two BEINGS.

␈↓ α,␈↓␈↓βINFER␈α∪MULTI-CLASS␈α∪GRAMMARS␈↓.␈α∪We␈α∪read␈α∪in␈α∪the␈α∪type␈α∪of␈α∀grammar,␈α∪and
␈↓ α,␈↓then␈α∪call␈α∪the␈α∪appropriate␈α∪specialist␈α∪for␈α∪that␈α∪type.␈α∪ Thus␈α∪we␈α∪have␈α∩a
␈↓ α,␈↓big switch here.

␈↓ α,␈↓␈↓βINFER␈α∩FIXED-CLASS␈α∩GRAMMARS␈↓.␈α∪ This␈α∩routine␈α∩determines␈α∪at␈α∩program-


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.15␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓synthesis␈α⊗time␈α⊗what␈α⊗the␈α⊗class␈α⊗is␈α↔going␈α⊗to␈α⊗be,␈α⊗and␈α⊗thus␈α⊗will␈α↔be␈α⊗a
␈↓ α,␈↓fixed␈α∀call␈α∃to␈α∀one␈α∀of␈α∃the␈α∀following␈α∀four␈α∃BEINGS.␈α∀ The␈α∃speedups␈α∀will
␈↓ α,␈↓arise from using the constraints on the rules.

␈↓ α,␈↓␈↓βINFER␈α∪PHRASE-STRUCTURE␈α∪GRAMMARS␈↓.␈α∀There␈α∪are␈α∪no␈α∀rule␈α∪constraints
␈↓ α,␈↓in␈α⊃a␈α⊃type␈α⊃0␈α⊃grammar;␈α⊃each␈α∩half␈α⊃of␈α⊃the␈α⊃rule␈α⊃is␈α⊃viewed␈α⊃as␈α∩an␈α⊃arbitrary
␈↓ α,␈↓list␈α$of␈α#letters.␈α$ When␈α#a␈α$TEST␈α#is␈α$indicated,␈α$the␈α#fringe-of-
␈↓ α,␈↓conciousness␈α⊃demon␈α∩must␈α⊃report␈α∩it␈α⊃is␈α∩thinking␈α⊃of␈α∩PARSE.␈α⊃The␈α∩left␈α⊃and
␈↓ α,␈↓right␈α↔sides␈α↔of␈α_a␈α↔rule␈α↔will␈α↔be␈α_destructive␈α↔operations␈α↔on␈α_the␈α↔data
␈↓ α,␈↓representation of a rule.

␈↓ α,␈↓␈↓βINFER␈α∃CONTEXT-SENSITIVE␈α∃GRAMMARS␈↓.␈α∃ We␈α∀shall␈α∃only␈α∃report␈α∃on␈α∀the
␈↓ α,␈↓differences␈α∃between␈α⊗the␈α∃INFER...␈α∃ BEINGS.␈α⊗ This␈α∃one␈α∃knows␈α⊗that␈α∃the
␈↓ α,␈↓right␈α∃side␈α∀of␈α∃the␈α∀rule␈α∃must␈α∃be␈α∀at␈α∃least␈α∀as␈α∃long␈α∀as␈α∃the␈α∃left␈α∀side.
␈↓ α,␈↓This␈α⊗will␈α↔be␈α⊗used␈α↔as␈α⊗a␈α⊗pruning␈α↔heuristic␈α⊗when␈α↔proposing␈α⊗plausible
␈↓ α,␈↓rules.

␈↓ α,␈↓␈↓βINFER␈α∀CONTEXT-FREE␈α∀GRAMMARS␈↓.␈α∀ Grammars␈α∪of␈α∀type␈α∀2␈α∀have␈α∀as␈α∪their
␈↓ α,␈↓left␈α∩side␈α∩a␈α∩single␈α⊃nonterminal.␈α∩Further␈α∩simplifications␈α∩can␈α∩occur␈α⊃by
␈↓ α,␈↓only␈α⊗working␈α↔toward␈α⊗a␈α↔Griebach␈α⊗Normal␈α⊗Form␈α↔or␈α⊗Chomsky␈α↔Normal␈α⊗Form
␈↓ α,␈↓grammar,␈α∀although␈α∪from␈α∀the␈α∪standpoint␈α∀of␈α∪inference␈α∀energy␈α∀these␈α∪are
␈↓ α,␈↓harder.

␈↓ α,␈↓␈↓βINFER␈α∩REGULAR␈α∪GRAMMARS␈↓.␈α∩ A␈α∩type␈α∪three␈α∩grammar␈α∩has␈α∪a␈α∩unit␈α∪on␈α∩the
␈↓ α,␈↓left␈α≥and␈α≡a␈α≥pair␈α≥of␈α≡them␈α≥for␈α≥a␈α≡right␈α≥side␈α≥(one␈α≡terminal,␈α≥one
␈↓ α,␈↓nonterminal). This is a very powerful pruning heuristic.

␈↓ α,␈↓␈↓βMAJOR␈α_MODIFY␈α→STRUCTURE␈↓.␈α_ The␈α_old,␈α→simple␈α_"insert,delete,alter"
␈↓ α,␈↓paradigm␈α⊂of␈α⊂modification␈α⊂was␈α⊂no␈α⊂longer␈α⊂sufficient.␈α⊂This␈α⊂BEING␈α⊂heads␈α⊂a
␈↓ α,␈↓whole␈α⊗complex␈α⊗of␈α⊗modify␈α⊗BEINGS,␈α∃including␈α⊗the␈α⊗old␈α⊗one␈α⊗as␈α⊗the␈α∃low-
␈↓ α,␈↓level workhorse primitive. Here is a sketch of the organization:
␈↓ α,␈↓                MAJOR-MODIFY-STRUCTURE
␈↓ α,␈↓                    /     |     \
␈↓ α,␈↓            MODIFY-UNTIL  |  MODIFY-SOME
␈↓ α,␈↓                    \     |     /
␈↓ α,␈↓        THE-ORIGINAL-MODIFY-STRUCTURE-BEING

␈↓ α,␈↓So␈α~this␈α→top-level␈α~modifier␈α~calls␈α→some␈α~subset␈α→of␈α~the␈α~three␈α→lower
␈↓ α,␈↓modification␈α≠BEINGS.␈α≠Later,␈α~we␈α≠had␈α≠to␈α~add␈α≠a␈α≠fourth␈α~alternative,
␈↓ α,␈↓EXAMINE DATA STRUCTURE, to aid in writing the INF program.

␈↓ α,␈↓␈↓βMODIFY␈α∀SOME␈↓.␈α∀We␈α∪determine␈α∀a␈α∀set␈α∪S␈α∀and␈α∀a␈α∪predicate␈α∀P␈α∀at␈α∪synthesis
␈↓ α,␈↓time.␈α→ At␈α~run␈α→time,␈α→we␈α~map␈α→through␈α→S␈α~and␈α→apply␈α→P;␈α~all␈α→elements
␈↓ α,␈↓responding␈α"positively␈α"are␈α#modified␈α"(using␈α"the␈α#original␈α"MODIFY
␈↓ α,␈↓STRUCTURE.) The decisions about P and S are easily deferrable.

␈↓ α,␈↓␈↓βMODIFY␈α∩UNTIL␈↓.␈α∩ This␈α∩BEING␈α∩is␈α⊃simply␈α∩an␈α∩order␈α∩to␈α∩compose␈α⊃REPEATEDLY


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.16␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈␈α MODIFY_STRUCTURE.␈α  The␈α former␈α BEING␈α bears␈α the␈α brunt␈α of␈α the
␈↓ α,␈↓responsibility of the interface.

␈↓ α,␈↓␈↓βPARSE␈↓.␈α∪Attempt␈α∪to␈α∪parse␈α∪a␈α∪string␈α∩from␈α∪the␈α∪current␈α∪set␈α∪of␈α∪rules,␈α∩by
␈↓ α,␈↓reversing␈α∀each␈α∪rule␈α∀and␈α∪composing␈α∀their␈α∪applications.␈α∀ We␈α∀decide␈α∪at
␈↓ α,␈↓synthesis␈α∀time␈α∃whehter␈α∀or␈α∀not␈α∃to␈α∀maintain␈α∀a␈α∃parse␈α∀tree,␈α∃whether␈α∀or
␈↓ α,␈↓not␈α⊂to␈α⊂maintain␈α⊂a␈α⊂list␈α⊂of␈α⊂the␈α⊂rules␈α⊂used␈α⊂during␈α⊂the␈α⊂parse,␈α⊂whether␈α⊂we
␈↓ α,␈↓stop␈α∃parsing␈α⊗at␈α∃any␈α∃legal␈α⊗string␈α∃or␈α∃only␈α⊗at␈α∃"S,"␈α∃whether␈α⊗we␈α∃parse
␈↓ α,␈↓forwards␈α⊃or␈α∩backwards␈α⊃or␈α∩both,␈α⊃how␈α∩deeply␈α⊃in␈α∩each␈α⊃direction␈α∩(this␈α⊃is
␈↓ α,␈↓always␈α≡deferred␈α≡until␈α≡much␈α≡later),␈α≡whether␈α≡one␈α≡direction␈α≡after
␈↓ α,␈↓another␈α∩or␈α∩(simulated)␈α∩simultaneously.␈α∩We␈α∩look␈α∩for␈α∩the␈α∩DataStructure
␈↓ α,␈↓part␈α⊃of␈α∩the␈α⊃BEING␈α∩representing␈α⊃a␈α∩rule,␈α⊃and␈α∩ask␈α⊃him␈α∩about␈α⊃constraints
␈↓ α,␈↓on␈α↔the␈α↔rule,␈α_and␈α↔about␈α↔how␈α↔to␈α_destructively␈α↔recover␈α↔the␈α_left␈α↔and
␈↓ α,␈↓right sides separately.

␈↓ α,␈↓␈↓βPARSE␈α↔BACKWARD␈↓.␈α↔ This␈α↔BEING␈α↔is␈α↔given␈α↔two␈α↔strings␈α↔and␈α↔a␈α_set␈α↔of
␈↓ α,␈↓rules;␈α⊃the␈α∩task␈α⊃is␈α⊃to␈α∩apply␈α⊃anti-rules␈α⊃to␈α∩the␈α⊃target␈α⊃string␈α∩until␈α⊃it
␈↓ α,␈↓becomes␈α⊗the␈α⊗initial␈α⊗string.␈α⊗ This␈α⊗is␈α⊗typically␈α⊗done␈α⊗breadth-first.
␈↓ α,␈↓Special␈α~modifications␈α~must␈α~be␈α~made␈α≠if␈α~there␈α~is␈α~a␈α~parse␈α≠tree␈α~to
␈↓ α,␈↓maintain,␈α⊃if␈α∩a␈α⊃set␈α⊃of␈α∩rules␈α⊃used␈α⊃must␈α∩be␈α⊃maintained,␈α⊃etc.␈α∩ The␈α⊃basic
␈↓ α,␈↓body␈α⊃is␈α⊃a␈α⊃nest␈α∩of␈α⊃FOREACH␈α⊃calls␈α⊃(∀rule,␈α∩∀way␈α⊃of␈α⊃applying␈α⊃the␈α∩rule␈α⊃to
␈↓ α,␈↓the␈α∪string,␈α∪recurse).␈α∪To␈α∀avoid␈α∪infinite␈α∪recursion,␈α∪we␈α∪must␈α∀supply␈α∪a
␈↓ α,␈↓third␈α⊂argument:␈α⊂the␈α⊂depth␈α⊂to␈α⊂which␈α⊂we␈α⊂compose␈α⊂these␈α⊂anti-rules␈α⊂before
␈↓ α,␈↓we␈α_give␈α_up.␈α_ When␈α_calling␈α_itself␈α_recursively,␈α_this␈α_level␈α_will␈α_be
␈↓ α,␈↓decremented.

␈↓ α,␈↓␈↓βPARSE␈α∩FORWARD␈↓.␈α∩This␈α∩BEING␈α∩is␈α∩analogous␈α∩to␈α∩the␈α∩previous␈α∩one,␈α⊃using
␈↓ α,␈↓rules␈α∩themselves␈α∩instead␈α∩of␈α⊃anti-rules.␈α∩Notice␈α∩how␈α∩clearly␈α∩the␈α⊃place
␈↓ α,␈↓to␈α∃insert␈α∃searching␈α∃heuristics␈α∃is␈α∀marked␈α∃out␈α∃for␈α∃us␈α∃(although␈α∀none
␈↓ α,␈↓are present.)

␈↓ α,␈↓␈↓βSTRING␈↓.␈α→ This␈α_is␈α→a␈α_structure␈α→whose␈α_parts␈α→are␈α_a␈α→name,␈α_a␈α→list␈α_of
␈↓ α,␈↓letters,␈α∪a␈α∪set␈α∪of␈α∪comments.␈α∪ It␈α∪is␈α∪advisable␈α∪to␈α∪use␈α∪list␈α∩structures
␈↓ α,␈↓rather␈α→than␈α→property␈α→lists␈α→to␈α→represent␈α→strings,␈α→since␈α→they␈α_will
␈↓ α,␈↓probably␈α∃only␈α⊗be␈α∃accessed␈α∃by␈α⊗one␈α∃of␈α∃their␈α⊗three␈α∃parts.␈α∃ In␈α⊗the␈α∃GI
␈↓ α,␈↓program,␈α$we␈α#don't␈α$use␈α#STRING␈α$itself,␈α#but␈α$rather␈α$we␈α#mention
␈↓ α,␈↓UNCOMMENTED␈α"STRING,␈α"which␈α"causes␈α!this␈α"BEING␈α"to␈α"create␈α"a␈α!new
␈↓ α,␈↓specialized version of itself, sans the third, comments part.

␈↓ α,␈↓␈↓∧(iii) The increment of knowledge necessary to write INF␈↓

␈↓ α,␈↓␈↓βEXAMINE␈α∀STRUCTURE␈↓.␈α∀ This␈α∃is␈α∀another␈α∀one␈α∀of␈α∃the␈α∀parts␈α∀of␈α∃a␈α∀major
␈↓ α,␈↓MODIFY␈α∩structure.␈α⊃ If␈α∩the␈α∩fringe␈α⊃of␈α∩conciousness␈α⊃demon␈α∩can't␈α∩come␈α⊃up
␈↓ α,␈↓with␈α∩a␈α⊃reasonable␈α∩matching␈α∩function,␈α⊃one␈α∩is␈α⊃selected␈α∩now.␈α∩ The␈α⊃basic
␈↓ α,␈↓body␈α⊃says␈α∩to␈α⊃do␈α∩PATTERN␈α⊃MATCH,␈α∩using␈α⊃this␈α∩match␈α⊃function,␈α∩and␈α⊃convey
␈↓ α,␈↓the␈α⊃results␈α⊃to␈α⊃the␈α∩caller␈α⊃(who␈α⊃may␈α⊃be␈α∩the␈α⊃user.)␈α⊃The␈α⊃inputs␈α∩are␈α⊃thus
␈↓ α,␈↓a␈α↔pattern,␈α↔a␈α⊗data␈α↔structure␈α↔name,␈α⊗and␈α↔possibly␈α↔a␈α⊗hint␈α↔to␈α↔a␈α⊗match
␈↓ α,␈↓function.

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.17␈↓ 	HBEINGs' knowledge␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 	i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓βPATTERN␈α∩MATCH␈↓.␈α⊃This␈α∩existed␈α∩as␈α⊃a␈α∩system␈α⊃function␈α∩earlier,␈α∩but␈α⊃for
␈↓ α,␈↓INF␈α it␈α is␈α necessary␈α to␈α write␈α a␈α tailored␈α pattern-matcher.␈α  In
␈↓ α,␈↓particular,␈α∪INF␈α∪demands␈α∪that␈α∪we␈α∪strip␈α∪away␈α∪the␈α∪common␈α∪head␈α∪and␈α∩tail
␈↓ α,␈↓from␈α∩both␈α⊃pattern␈α∩and␈α∩expression,␈α⊃and␈α∩then␈α⊃compose␈α∩the␈α∩two␈α⊃remaining
␈↓ α,␈↓pieces␈α∃into␈α⊗the␈α∃left␈α∃and␈α⊗right␈α∃sides␈α∃of␈α⊗a␈α∃new␈α∃plausible␈α⊗rule,␈α∃and
␈↓ α,␈↓then␈α⊃check␈α∩that␈α⊃this␈α∩conforms␈α⊃with␈α∩the␈α⊃constraints␈α∩on␈α⊃rules.␈α∩This␈α⊃is
␈↓ α,␈↓certainly␈α⊂different␈α⊂from␈α⊂the␈α⊂type␈α⊂of␈α⊂match␈α⊂needed␈α⊂by␈α⊂CF!␈α⊂ Notice␈α⊂that
␈↓ α,␈↓we␈α⊃had␈α∩to␈α⊃add␈α∩the␈α⊃"eliminate␈α∩common␈α⊃head/tail"␈α∩functions␈α⊃to␈α∩our␈α⊃list
␈↓ α,␈↓of system primitive functions.








































␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α!page A2.18␈↓ 	HBEINGs' knowledge␈↓